tower.cpp

来自「汉诺塔的实现」· C++ 代码 · 共 86 行

CPP
86
字号
// Tower.cpp: implementation of the Tower class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "HanoiTower.h"
#include "Tower.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

Tower::Tower()
{
	
}

Tower::Tower(Tower &T)
{
	m_nTopDiscSerialNum=T.m_nTopDiscSerialNum;
	m_nTotalDiscNum=T.m_nTotalDiscNum;
	m_nTowerSerialNum=T.m_nTowerSerialNum;
	
	m_pointCenter.x=T.m_pointCenter.x;
	m_pointCenter.y=T.m_pointCenter.y;

	m_sizeBase.cx=T.m_sizeBase.cx;
	m_sizeBase.cy=T.m_sizeBase.cy;

	m_sizePole.cx=T.m_sizePole.cx;
	m_sizePole.cy=T.m_sizePole.cy;

}


Tower::~Tower()
{

}

bool Tower::InitialTower(int TowerSerialNum, int TopDiscNum, int TotalDisc)
{
	//初始化位置属性
	m_nTowerSerialNum=TowerSerialNum;
	m_nTopDiscSerialNum=TopDiscNum;
	m_nTotalDiscNum=TotalDisc;
    
	//初始化形状属性
	m_pointCenter.x=TowerSerialNum*1320/3-880;
	m_pointCenter.y=0;

	m_sizeBase.cx=300;
	m_sizeBase.cy=30;

	m_sizePole.cx=10;
	m_sizePole.cy=480;

	return TRUE;
}


CRect Tower::GetBase()
{
	return CRect(m_pointCenter.x-m_sizeBase.cx/3,
	                m_pointCenter.y+m_sizeBase.cy,
					m_pointCenter.x+m_sizeBase.cx/3,
					m_pointCenter.y);
}




CRect Tower::GetPole()
{
	return CRect(m_pointCenter.x-m_sizePole.cx/4,
	                m_pointCenter.y+m_sizePole.cy,
					m_pointCenter.x+m_sizePole.cx/4,
					m_pointCenter.y);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?