lines
ДОДАТОК А
. cpp:
# include «windows.h»
# include «resource.h»
# include «random.h»
# include
# include
# include
# include
# define MENU_HEIGHT 45
# define TOP_HEIGHT 46 / / Висота табло (де відображуються окуляри) в
пікселах
# define CELL_SIZE 45 / / Розмір сторони чарунки у пікселях (вони всі
квадратні)
# define N1 4 / / Кількість картинок для появи кульки
# define N2 12 / / Кількість картинок для стрибка кульки
# define N3 9 / / Кількість картинок для видалення кульки
# define MAX_MAP_X 20 / / Максимальний розмір поля по x
# define MAX_MAP_Y 12 / / Максимальний розмір поля по y
{int y; color; pre_color; num_pic;} [MAX_MAP_X] [MAX_MAP_Y]; ball_color; info
{int score; time; name [30];} [3]; info null_leader={100,3600, «noname»}; y_lines; gametime; gamescore; gametype; max_x;// По xmax_y;// По yapp_balls; del_balls;
# define LOGGING / / Включаємо логирование
# ifdef LOGGING * log; char * aCell_states [6]=
{«Відсутність кулі»,
«Підказка»,
«Поява кулі»,
«Куля стоїть»,
«Куля стрибає»,
«Видалення кулі»}; char * aLines_states [5]=
{«Пошук ігрового кулі»,
«Пошук куди послати ігровий куля»,
«Пересування ігрового кулі»,
«Видалення ліній»,
«Поява нових куль»};
# endifbmp_0, bmp_prestand, bmp_stand, bmp_jump [N2], _explode [N3], bmp_appear [N1], bmp_numbers, _points; * bmp [6]; hDC; hCompatibleDC; hWnd; hInst; szTitle [ ]=«Lines»; szWindowClass []=«LINES»; clRect; cell
{public: posx;// Позиція осередки на поле (зліва направо від 0) posy;// Позиція осередки на поле (зверху вниз від 0) operator == (const cell & b) const
{return (b.posx == posx && b.posy == posy);} operator!=(const cell & b) const
{return (! (* this == b));} & State () const
{return map [posx] [posy]. y;} & Color () const
{return map [posx] [posy]. color;} & PreColor () const
{return map [posx] [posy]. pre_color;} & NumPic () const
{return map [posx] [posy]. num_pic;} ACell (int e) const
{int & y=State ();
# ifdef LOGGINGy_old=y;
# endif (y)
{case 0: (e == 1) {z0 (); y=3;} (e == 2 && x0 ()) {z4 (); y=1;} if (e == 2) {z1 (); y=1;}; 1: (e == 1) {z2 (); y=3;} (e == 3) y=2;; 2: (e == 3 && x1 ()) {z6 (); y=3;} if (e == 3) {z5 ();}; 3: (e == 0 && x0 ()) {z4 (); y=1;} if (e == 0) {z3 (); y=0;...