Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
1
Добавлен:
30.05.2020
Размер:
2.19 Кб
Скачать
//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
Соседние файлы в папке kurs