Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Вараніцький.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
712.71 Кб
Скачать

3.4. Опис основних функцій

Програма складається з функцій, опис яких наведений в таблиці 3.4.1.

Таблиця 3.4.1 – Функції програми

Ім'я

Характеристика

Призначення

__fastcall TForm1::TForm1(TComponent* Owner): TForm(Owner){}

Головна

Забезпечує інтерфейс користувача

void __fastcall TForm1::Timer1Timer(TObject *Sender){}

Спрацьовує при натисканні кнопки "Новая игра"

Прослуховує клавіатуру та координує змійку в потрібному напрямку

void makeRandomSnake (void){}

Спрацьовує при натисканні кнопки "Новая игра"

Виставляє змійку в випадковому місці на ігровому полі

void render(void){}

Спрацьовує при натисканні кнопки "Новая игра"

Займається побудовою ігрового світу

void music(void){}

Спрацьовує при натисканні кнопки "Новая игра"

Забезпечує фонову музику

void clearAll (void) {}

Спрацьовує при натисканні кнопки "Новая игра"

Забезпечує очистку поля

void gameOver (void) {}

Спрацьовує при програшу

Виводить повідомлення про програш

void makeRandomFood (void) {}

Спрацьовує при натисканні кнопки "Новая игра"

Відповідає за розстановку їжі на полі

void makeRandomPoison (void) {}

Спрацьовує при натисканні кнопки "Новая игра"

Відповідає за розстановку стін на полі

void Exit(void) {}

Спрацьовує при натисканні кнопки "Выход"

Забезпечує вихід із програми

void Win(void) {}

Спрацьовує при виграшу

Відповідає за виграш

void step (void) {}

Викликається автоматично таймером

Відповідає за кожен крок змії

void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key, TShiftState Shift)

Спрацьовує при натисненні певних клавіш

Відповідає за направлення змії по ігровому полю

void __fastcall TForm1::Button1Click(TObject *Sender)

Спрацьовує при натисканні кнопки "Новая игра"

Відповідає за початок нової гри

Продовження таблиці 3.4.1 – Функції програми

4. Реалізація курсової роботи

Програма реалізує об'єктно-орієнтований варіант інтерфейсу, в середовищі C++ Builder. Інтерфейс забезпечується повідомленнями користувачеві, зразки яких, джерело виникнення та опис ситуації наведені у таблиці 4.1.

Таблиця 4.1 – Повідомлення користувачеві

Повідомлення

Джерело

Опис ситуації

Игра окончена

void gameOver (void) {}

Координати змійки збіглися з границею поля

Поздравляем, вы прошли уровень!!!

void Win(void) {}

Ви пройшли рівень гри

Інтерфейс гри "Сапер"

Програма має такий вигляд (Рисунок 4.1)

Рисунок 4.1 ­­­­­­­­- Інтерфейс програми

П ри натисканні клавіш-стрілок, змія повертається у відповідний напрямок. Коли координати змії співпадають з координатами яблука, змія росте.

Рисунок 4.2 ­­­­­­­­- Ігровий процес

Коли гравець програє, то виведеться таке повідомлення:

Рисунок 4.3 ­­­­­­­­- Виведення повідомлення про програш

Коли гравець виграє , то виведеться таке повідомлення:

Рисунок 4.4 ­­­­­­­­- Виведення повідомлення про виграш

У цьому проекті не використовуються вхідні дані тобто користувач нічого не вводить з клавіатури .

Використовуються допоміжні змінні :

int world[25][25]

Ігрове поле

int east, south, relativeE, relativeS, wrappedE, wrappedS;

Змінні, які відповідають за частини ігрового поля

int snakeE[650], snakeS[650], snakeHeadE, snakeHeadS, snakeTailE, snakeTailS, segment;

Позиції кожного сегменту змійки

int snakeLength;

Довжина змійки

int direction, lastDirection, reverseDirection;

Напрямок змійки

int w=0;

Кількість пройдених рівнів

int maxSize = 25.

Максимальний розмір поля

Вихідні дані

Повідомлення

Джерело

Опис ситуації

Игра окончена. Размер змеи:

void gameOver (void) {}

Координати змійки збіглися з границею поля

Поздравляем, вы прошли уровень!!!

void Win(void) {}

Ви пройшли рівень гри

Спочатку з'являється форма, яка відображає меню гри. За меню відповідає функція __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner).

Потім при натисканні клавіші нової гри, об’являються змінні які потім використовуватимуться для роботи програми.

bool ateFood = false; //їжа

// світ

int world[25][25];

// змінні які відповідають за частини ігрового поля

int east, south, relativeE, relativeS, wrappedE, wrappedS;

// позиції кожного сегменту змійки

int snakeE[650], snakeS[650];

int snakeHeadE, snakeHeadS;

int snakeTailE, snakeTailS;

int snakeLength;

int segment;

int direction, lastDirection, reverseDirection; //напрямок

int w=0; //вінрейт

int maxSize = 25; //максимальний розмір поля

Наступною частиною є головна функція

void __fastcall TForm1::Timer1Timer(TObject *Sender){}

яка працює по запуску таймера та повністю відповідає за рух та напрямок змійки, використовуючи допоміжні функції які знаходяться в наступній частині программи :

void music(void) {}

Відповідає за музику на фоні

void render(void) {}

Формує ігрове поле рівня

void makeRandomSnake (void) {}

Генерує випадкову позицію змійки

void clearAll (void) {}

Очищає поле

void Win(void) {}

Функція, яка відповідає за виведення повідомлення про виграш

void gameOver (void) {}

Закінчує гру.

void makeRandomFood (void) {}

Виставляє на полі їжу.

void makeRandomPoison (void) {}

Виставляє стіни.

void Exit(void) {}

Вихід.

void step (void) {}

Відповідає за кожну дію змійки.

void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key, TShiftState Shift)

Прослуховує натиснуті клавіші.

void __fastcall TForm1::N5Click(TObject *Sender)

Пауза (зупинка таймера).

void __fastcall TForm1::N6Click(TObject *Sender)

Продовження гри.

void __fastcall TForm1::N7Click(TObject *Sender)

Виведення інформації.

void __fastcall TForm1::Button1Click(TObject *Sender)

Клавіша, яка відповідає за початок нової гри або за перехід на новий рівень.