Добавил:
masterdos
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Курсовая работа / kurs / draught
.h//draught.h - Заголовок модуля элементов игры
#ifndef draught_h
#define draught_h
#include "figures.h"
//константы предметной области
const cFieldLength=200;//длина поля
const cSquareNum=32;//количество клеток одного цвета
const cDraughtNum=24;//количество шашек
const cSquareLength=25;//длина клетки
const cDraughtRadius=23;//радиус шашки
const cKingRadius=6;//внутренний радиус дамки
//константы проектирования
const cCenterX=50;
const cCenterY=50;
enum TPlayer{PBlack, PWhite};
enum TEnter {one,two,three};
enum TDrState {stOnField,stOutField};
enum TDrKing {King, NKing};
enum TDrColor {Black,White};
enum TSqState {Empty, First,Second};
//константы событий
enum TEvConst {EvNothing, EvMoveUL, EvMoveDR, EvMoveUR, EvMoveDL, EvEnter, EvQuit, EvNew};
//класс событие
class TEvent
{
public:
TEvConst What;
};
//класс шашка
class TField;
class TDraught:public TFigure
{
friend class TField;
TDrState theState;//состояние шашки
TDrColor theColor;//цвет шашки
TDrKing theKing;//флаг дамка или нет
public:
TDraught(int tCenterX,int tCenterY,TDrState tState,TDrColor tColor);
virtual void Show();
};
//класс клетка
class TSquare:public TFigure
{
friend class TField;
TSqState theSqState;//состояние клетки
public:
TSquare(int tCenterX,int tCenterY, TSqState tSqState);
virtual void Show();
};
//класс курсор
class TCursor:public TFigure
{
public:
TCursor(int tCenterX,int tCenterY);
virtual void Show();
float GetCenterX();
float GetCenterY();
void Move(int DeltaX, int DeltaY);
};
//класс поле
class TField
{
TSquare *PSquare[32];
TDraught *PDraught[24];
TCursor *PCursor;
public:
TPlayer thePlayer;//номер игрока
TEnter theEnter;//показатель, какой раз была нажата кнопка выбора
TField();
void Delete();
void HandleEvent(TEvent *anEvent);
void Initiate();
void Start();
int Enter1();
int Enter2(int t);
void Enter3(int t1);
void UpDate(int d, int s);
int Find(int X,int Y,int P);
void Eat(int i1,int i2, int i3);
~TField();
};
//класс модулируемая реальность
class TReality
{
TField *PTheField;
public:
TReality();
void Run();
~TReality();
};
#endif