Java-гра "Тетріс"

Анотація

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

Робота викладена на 47 сторінках, містить 5 рисунків, 5 додатків.


Зміст

Вступ

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

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

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

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

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

2.2 Ієрархія спадкування

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

2.4 Алгоритмізація

2.5 Кодування і вибір інструментальних засобів

2.6 Тестування

ВИСНОВОК

Література

Додатки

Додаток А Опис класів

Додаток Б Опис інтерфейса програми

Додаток В Інструкція з встановлення

Додаток Г Лістинг програми

Додаток Д Результат роботи програми


Вступ

В даній курсовій роботі реалізується гра «Тетріс». Зміст гри полягає у тому, що випадкові фігурки падають зверху в прямокутний стакан висотою 10 і шириною 20 кліток. У польоті гравець може повертати фігурку і рухати її по горизонталі, але не уповільнювати політ. Фігурка летить, поки не натикнеться на іншу фігурку або на підлогу стакана. Якщо при цьому заповнився горизонтальний ряд з 10 кліток, він пропадає і все, що вище за нього, опускається на 1 клітку. Темп гри поступово збільшується.

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

Для кодування гри буде обрана мова Java, що сприяє написанню надійного програмного продукту.


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

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

Метою даної курсової роботи є розробка гри „Тетріс”. Вона відноситься до логічних ігор, які допомагають розвинути реакцію, тренують логіку. При тривалій роботі за комп'ютером виникає бажання трохи відпочити. Для цієї мети не підходять ігри типу стратегій, бо для них потрібно багато часу, а для 5-10 хвилинного відпочинку цілком підійде саме «Тетріс». У стандартній поставці операційних систем даної гри немає, тому виникла необхідність у її створенні.

До ігор такого типу пред‘являються такі вимоги: використання простих засобів управління; зручний графічний інтерфейс; поступове ускладнення гри при наборі певної кількості очок. Під час виконання програма повинна виконуватися коректно і не приводити до збоїв.

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

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

Фігури не повинні виходити за кордони ігрового поля, вони мають переміщуватись та перевертатись. Для надання більшої привабливості зовнішньому вигляду ігрового поля при написанні гри потрібно використовувати яскраву графіку. Інтерфейс програми, що розроблюється повинний бути зручний і зрозумілий користувачу.

Програма повинна реагувати на натискання клавіш клавіатури, виводячи зображення на екран.

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


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

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

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

На етапі ескізного проектування були виділені такі об’єкти, що входять до складу програми: власне гра «Тетріс»; ігрове вікно, яке включає ігрове поле, поле кнопок і ігрове меню. Графічно це відображається в ієрархії об’єктів на рисунку 1.

Рисунок 1 – Ієрархія об’єктів

2.2 Ієрархія спадкування

З урахуванням прийнятої методології і ієрархії класів нам необхідно ієрархію спадкування, яка зображена на рисунку 2.


Рисунок 2 – Ієрархія спадкування

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

Діаграма станів гри зображена на рисунку 3.


Овал: Гра в процесі
 


Овал: Гра призупинена                                  Запуск                                                                 Вихід

 


                 Натиснута кнопка «Pause»                                            Обраний пункт меню «Start New Game»

                                                                                   Обраний пункт меню «StopGame»                  

                                                     Натиснута кнопка «Resume» 

Овал: Гра зупинена                                                                                                 Фігура досягла верху стакана

                                                                            

                                               

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

2.4 Алгоритмізація

Одною з найважливіших функцій у даній роботі є очищення заповнених ліній. ЇЇ блок-схема показана на рисунку 4.


Рисунок 4 – Блок-схема методу private int clearFullLines()

2.5 Кодування і вибір інструментальних засобів

Враховуючи поставлену задачу, ієрархію класів, об’єктів, було зроблено висновок, що для даної роботи найкраще підійде мова програмування Java,так як використовуючи її маємо змогу використовувати величезний набір класів, які входять в стандартний пакет Java. Завдяки чому, наша робота включатиме розробку взаємодії між готовими класами. Також Java дозволяє досить легко створювати програми з графічним інтерфейсом користувача. Програма була написана в середовищі NetBeans 6.0.


2.6 Тестування

Тестуючи програму, бачимо, що в цілому програма працює вірно. Коли ми намагаємося рухати фігуру клавішами управління – вона рухається. Натискаючи на кнопку «Pause» бачимо, що програма призупиняється, а коли натискаємо «Resume» – продовжується. Той самий ефект спостерігаємо при повторному натисканні клавіші F3. При виборі пункту меню «Start New Game» – гра починається спочатку, а при виборі «Stop Game» – гра зупиняється.


Висновок

У даній курсовій роботі був розроблений програмний продукт – логічна гра Тетріс.

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

При написанні програми була використана об’єктно-орієнтована мова Java.


Література

1.             Хабибуллин И.Ш. Самоучитель Java 2. СПб.: БХВ-Петербург, 2007. – 720 с.: ил.

2.                 Эккель Б. Философия Java. Библиотека программиста. СПб.: Питер, 2001

3.                 Беркунський Є.Ю. Об’єктно-орієнтоване програмування мовою Java: Методичні вказівки для студентів напрямку “ Комп’ютерні науки”. – Миколаїв: НУК, 2006. – 52 с.


Додатки

В даному розділі буде детально розглянуто кожен з класів даної роботи, його поля і методи

Додаток А Опис класів

interface GamePanel – інтерфейс гральної панелі

Поле Опис поля
final static int PLAY = 1 Стан «гра в процесі»
final static int STOP = 2 Стан «гра зупинена»
final static int PAUSE =3 Стан «гра призупинена»
Метод Опис методу
public void startNewGame() Почати нову гру
public void pauseGame() Призупинити гру
public void resumeGame() Продовжити гру
public void stopGame() Зупинити гру
public int getScore() Одержати рахунок
public int getState() Одержати стан гри
public void figureMoveRight() Рухати фігуру вправо
public void figureMoveLeft() Рухати фігуру вліво
public void figureMoveDown() Рухати фігуру вниз
public void figureRotate() Обертати фігуру
public void gamePauseResume() Змінити стан гри PAUSE на PLAY і навпаки

public class Tetris – основний клас

Метод Опис методу
public static void main(String[] args) Запуск програми

public class TetrisFrame – вікно програми

Метод Опис методу
public TetrisFrame() Конструктор класу TetrisFrame
private void tetrisGamePanel1KeyPressed (java.awt.event.KeyEvent evt) Обробка натискання клавіш управління
private void menuNewGame1ActionPerformed (java.awt.event.ActionEvent evt) Обробка вибору пункту меню «Start New Game»
private void menuPauseGame1ActionPerformed (java.awt.event.ActionEvent evt) Обробка вибору пункту меню «Stop Game»
private void menuFileExit1ActionPerformed (java.awt.event.ActionEvent evt) Обробка вибору пункту меню «Exit»
public void continueButtonPressed (ActionEvent evt) Обробка натискання кнопки «Resume»

public void pauseButtonPressed

(ActionEvent evt)

Обробка натискання кнопки «Pause»

public class PlaySound – програвання музики

Метод Опис методу
public PlaySound(String s) Конструктор класу PlaySound
protected void play(String file) Програвання музики

public class Figure – клас фігури

Поле Опис поля
final static byte[][][] PATTERN Шаблони фігур
final static Color[] COLORS Шаблони кольорів фігур
private int type Тип фігури
private int[][] pat Шаблон фігури
private int x Координата х
private int y Координата у
Если Вам нужна помощь с академической работой (курсовая, контрольная, диплом, реферат и т.д.), обратитесь к нашим специалистам. Более 90000 специалистов готовы Вам помочь.
Бесплатные корректировки и доработки. Бесплатная оценка стоимости работы.

Поможем написать работу на аналогичную тему

Получить выполненную работу или консультацию специалиста по вашему учебному проекту
Нужна помощь в написании работы?
Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Пишем статьи РИНЦ, ВАК, Scopus. Помогаем в публикации. Правки вносим бесплатно.

Похожие рефераты: