Рефераты. Гра "Змійка" - опис програми

Гра "Змійка" - опис програми

8.080403.3157з 18

Лист

30

Зм.

Лист

№Док.

Підпис

Дата

Зміст

Анотація

Гра «Змійка» - це гра, в якій уявна змійка рухається по ігровому полю оминаючи перепони і їй потрібно влучити в ціль. Програма є нескладною і доступна для виконання на багатьох ЕОМ в різних операційних системах з встановленою Virtual Java Machine. Вона розрахована на широке коло користувачів завдяки своїй простоті.

Завдання:

Провести аналіз, розробити проект, скласти опис і специфікацію, провести кодування програми-гри «Змійка» використовуючи методи об'єктно-орієнтованого програмування.

1. Аналіз предметної області, постановка задачі

1.1. Формулювання проблеми

Комп'ютерні ігри для людини - це не лише засіб розважитись. Вони допомагають розвинути людську реакцію, інтелект, знання в певних галузях і областях. Гра змійка - одна з таких ігор. Рівень, до якого дійде гравець, залежить лише від швидкості його реакції на поточні обставини гри, які динамічно змінюватимуться в сторону збільшення з кожним новим раундом, що також сприятиме збільшенню реакції. Провівши частину вільного часу за грою, можна отримати задоволення від набраних очок і пройдених рівнів. Якщо людина ніколи не працювала з комп'ютером, то гра допоможе набути мінімальних навиків з клавіатурою без необхідності розбиратись з складними правилами великих ігор та програм.

Правила гри такі: на прямокутному ігровому полі створюється змійка, яка має декілька життів і складається з кількох частин. На полі також знаходяться клітки-перепони та ціль, в яку змійка має влучити. Змійка починає рухатися в довільному напрямку на найнижчій швидкості, яка відповідає першому рівню гри. Коли гравець натискатиме клавіші курсору, то напрям руху першої частини змійки - «голови» змінюватиметься відповідно до натиснутої клавіші. Коли голова змійки вийде за межі ігрового поля чи влучить в одну з перепон, то в залежності від того, залишились чи ні життя, в змійки або ж буде відняте одне життя, або ж гру буде припинено. Коли голова змійки «врізається» в ціль, то вона стане новою головою і рух змійки продовжиться. Коли довжина змійки перевищує максимально можливу, то даний рівень буде пройдено і гра перейде на наступний. В наступному рівні швидкість руху збільшується.

1.2. Аналіз предметної області

Гру «змійка» можна було б реалізувати в текстовому режимі, зображуючи всі об'єкти різними текстовими символами, наприклад, границі - підкреслюванням «_ і |», перепони хрестиками «Х», змійку прямокутниками.

Але в іграх, що вже існують і подібні до даної, використовуються побудови в графічному режимі, хоч і максимально прості. Проте поряд з простотою в них застосовуються анімації для зображення руху, наприклад у грі в танки, ці танки рухаються по екрану, імітуючи рух справжнього танку.

У грі для створення інтерфейсу користувача - виводу вікна гри, ігрових меню та кнопок, можна використати стандартні засоби мови JAVA - компоненти бібліотек AWT (застаріла) чи Swing (більш нова, що є частиною API - Java Foundation Classes), і тому її використання цієї бібліотеки дає більше можливостей для графічного оформлення гри - побудова найпростіших геометричних фігур, розфарбовування областей екрану та інше.

1.3. Постановка задачі

Розробити проект гри, з допомогою який можна програмно реалізувати, провівши кодування на об'єктно-орієнтованій мові програмування, скласти специфікацію.

2. Проект програми

2.1. Ієрархія об'єктів

На основі того, що необхідно розробити гру змійка, можна виділити головний об'єкт ієрархії - «Гра Змійка». Вона складається з «ігрового поля» та «меню».

Об'єкти-пункти меню: «Гра» з вкладеними підпунктами «нова гра» - розпочинає нову гру, «пауза» - тимчасово припиняє гру, «зупинити гру» - зупиняє поточну гру, «вихід» - дозволяє вийти з програми. Підменю «швидкість гри» з меню «Настроювання» дозволяє змінити швидкість руху змійки.

Об'єкт «ігрове поле» складається з об'єктів «ціль», «змійка», «перепона», «межі», «поле інформації» та «повідомлення». «Ціль» це клітка на ігровому полі, у яку має влучити змійка. «Змійка» складається з «частин» і згідно описаних вище правил рухається по ігровому полі. «Перепони» - це клітки на ігровому полі, які змійка має оминати. «Межі» ігрового поля встановлюють границі, за які змійка не може вийти. Влучання змійки в перепони чи вихід за ігрове поле зменшують її кількість гравців.

«Поле інформації» інформуватиме гравця про стан гри: «Повідомлення» - якій будуть видаватися різноманітні текстові повідомлення про події в грі та вказівки гравцю (наприклад, повідомлення про те, що гру закінчено, про перехід в наступний тур або виграш у грі). «Індикатор життів» - об'єкт, який показуватиме про кількість життів змійки. «Індикатор рівня» буде показувати номер рівня, на якому знаходиться гра. «Індикатор довжини» відображатиме довжину змійки, щоб гравець орієнтувався, скільки цілей поцілено - згідно вказаних правил для переходу на наступний рівень, потрібно поцілити в певну кількість цілей.

Рисунок 1 - ієрархія об'єктів гри Змійка

2.2. Ієрархія наслідування

Рисунок 2 - Ієрархія класів

2.3. Діаграма станів гри

Рисунок 3 - Діаграма станів гри

2.4. Специфікація

Клас public class Game - головний клас проекту необхідний для запуску гри

Метод public static void main(String[] args) - з нього починається виконання програми

Клас public class GameFrame реалізує вікно для відображення ігрового поля та даних гри

Метод public GameFrame() - конструктор вікна гри в якому встановлюються його параметри.

Метод public void newGame() - метод запускає новий сеанс гри

Метод public void pauseGame() - метод створює паузу

Метод public void stopGame() - метод зупиняє гру

Клас public class GameField - ігрове поле

Змінні:

Snake snake - змійк

GameFrame frame - змінна для доступу до вікна гри

InformPanel informPanel - інформаційна панель

protected boolean isGameRun = істина, якщо йде гра

protected boolean isGamePause - істина під час паузи

int gameSpeed - швидкість гри

protected int colObstacles - Кількість перепон

protected int delay - Затримка при русі змійки

final int w = 35, h = 25 - розміри ігрового поля

protected GameSquare square[][] - ігрові клітки

boolean keyBlocked - істина, коли заблокована клавіатура

Методи

public GameField(GameFrame owner) - конструктор

public void setDefault() - встановлення в початковий стан

public void clearSquares()- відмічення всіх кліток вільними

protected void createSnake() - створення змійки

protected void createBorders() - Створює межі поля

protected void createObstacles(int col) - створює col перепон на ігровому полі

protected void createTarget() - створення мішені для змійки

public void paintComponent(Graphics g) - малювання компонентів поля

public void run () - обробка подій гри

public void cheeckWin() - перевірка перемоги в грі

public void processCrash() - перевірка влучання в перепону

public void newGame() - Запуск нової гри

public void pauseGame() - пауза в грі

public void stopGame( ) - зупинка гри

public void setGameSpeed(int s) - задання швидкості гри

Клас public class InformPanel

Змінні:

protected int lives, len, speed, obstacles - кількість життів, довжина змійки, швидкість змійки, кількість перепон;

Методи

public InformPanel(final GameField field) - Конструктор

public void updateInfo(int lives, int len, int speed, int obstacles) Зміна поточних даних новими

Страницы: 1, 2, 3, 4



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.