justify"> char savepath [23] ;//змінна, яка дозволяє поміщати файли збереження в папку./save/
public: () {}
~ Menu () {} MenuGame (void);// Головне меню ExitOutGame (void);// Вікно підтвердження виходу з гри
void MenuEnterKey (int);// Функція, що відповідає за натискання "Enter" у Головному меню
void StartGame (void);// Заставка
void InputName (void);// Функція введення імені
void Score (void);// Меню "Таблиця результатів"
void About (void);// Меню "Про гру" Game (int);// Найголовніша функція, що здійснює ігровий процес
void Pause (void);// Меню "Паузи" AddScore (void);// Функція запису результату у файл рекордів
void PrintScore (void);// Функція друку рекордів у текстовий файл
}; Menu :: StartGame (void)
{setcolor (3); (5, HORIZ_DIR, 16); (400,450, "Єлохіна Олексій, група І512"); (GREEN); (DEFAULT_FONT, HORIZ_DIR, 16); (230,300, "[Натисніть будь-яку клавішу]"); (DEFAULT_FONT, HORIZ_DIR, 100); (1,0); key = 0; i = 180;
// Невелика анімація появи заставки на початку гри
while (key == 0 && i> 80)
{key = getch (); (GREEN); (100,60, "пастка"); (0, 80, 640, i); -; (DEFAULT_FONT, HORIZ_DIR, 100); (1,0); (50);
} (100,60, "пастка"); (DEFAULT_FONT, HORIZ_DIR, 16); (230,300, "[Натисніть будь-яку клавішу]"); (230,300,430,320); ();//Виклик функції введення імені гравця
} Menu :: MenuGame (void)
{* fin; x0 = 280, y0 = 220, i = 0, key = 0, pos = 1, flagexit = 1, p = 1; ();
fin = fopen ("temp.dat", "rb");// Відкриваємо файл, що містить інформацію поточного профілю
fread (& ns, sizeof (ns), 1, fin);// Отримуємо з нього дані
fclose (fin), (3); (5, HORIZ_DIR, 16); (400,450, "Єлохіна Олексій, група І512");
setcolor (GREEN); (DEFAULT_FONT, HORIZ_DIR, 100); (100,60, "пастка"); (DEFAULT_FONT, HORIZ_DIR, 16); (8);
outtextxy (x0 +120, y0 +20, ns.name);// Висновок імені поточного профілю в головному меню
setcolor (YELLOW); = fopen (savepath, "rb");
// Висновок пунктів меню
if (fin)// Перевірка на наявність збереженої гри
{
outtextxy (x0, y0-20, "Продовжити");
p = 0;
pos = 0; (fin);
} (x0, y0, "Нова гра"); (x0, y0 +20, "Зміна гравця:");
outtextxy (x0, y0 +40, "Перегляд результатів");
outtextxy (x0, y0 +60, "Правила гри");
outtextxy (x0, y0 +80, "Вихід"); (RED); (x0-10, y0 +10 + (p-1) * 20,4);// Покажчик на пункт меню
while (flagexit)
{key = getch (); (key)
{case 38: {if (pos> p) {setcolor (BLACK);// Рух покажчика вниз (x0-10, y0 +10 + (pos-1) * 20,4); -; (RED); (x0-10, y0 +10 + (pos-1) * 20,4);
};
} 40: {if (pos <5) {setcolor (BLACK);// Рух покажчика вгору (x0-10, y0 +10 + (pos-1) * 20,4); + +; (RED); (x0-10, y0 +10 + (pos-1) * 20,4);
}
break;
}
case (27): {ExitOutGame ();}// Виклик функції "Підтвердження виходу з гри", якщо натиснули "Esc" у головному меню
case (13): {MenuEnterKey (pos);}// Виклик функції вибору пункту, якщо натиснули "Enter"
}
}
}
void Menu :: ExitOutGame (void)// Функція "Підтвердження виходу з гри
{x0 = 300, y0 = 200, i = 0, flag = 0; (); (DEFAULT_FONT, HORIZ_DIR, 16); (YELLOW); (x0, y0, "Хочете
{key = getch (); (key)
{case 38: {if (pos> 2) {setcolor (BLACK);// Рух покажчика вниз (x0-10, y0 +10 + (pos-1) * 20,4); -; (RED); (x0-10, y0 +10 + (pos-1) * 20,4);
};
} 40: {if (pos <3) {setcolor (BLACK);// Рух покажчика вгору (x0-10, y0 +10 + (pos-1) * 20,4); + +; (RED); (x0-10, y0 +10 + (pos-1) * 20,4);
}
break;
}
case (27): {MenuGame ();}// Повернення в головне меню
case (13): {if (pos == 3)// Вихід, якщо на позиції "Так"
{remove ("temp.dat") ;//При виході видаляється тимчасовий файл, що містить інформацію про поточний профілі
_exit (1);
}
e...