Essays.club - Получите бесплатные рефераты, курсовые работы и научные статьи
Поиск

Разработка и реализация игры Packman

Автор:   •  Декабрь 9, 2022  •  Практическая работа  •  11,728 Слов (47 Страниц)  •  165 Просмотры

Страница 1 из 47

Министерство образования и науки РФ

Федеральное государственное бюджетное образовательное учреждение

высшего образования

«Омский государственный технический университет»

Кафедра «Информатика и вычислительная техника»

Расчетно-графическая работа

по дисциплине

«Проектирование и тестирование программного обеспечения»

на тему

«Разработка и реализация игры Packman»

Омск 2021


Содержание

Постановка задачи        3

Алгоритм реализации        4

Тестирование        6

Заключение        10

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ        11

ПРИЛОЖЕНИЕ А        12

ПРИЛОЖЕНИЕ Б        29


Постановка задачи

Реализуйте:

1. Обязательные функции

1.1 На игровом поле не менее 50% экрана (можно в коде программы установить фиксированный большой размер) случайным образом расставляются «кусты» и «камни», по одному в ячейке. Пакмен, занимающий одну ячейку, управляется стрелками клавиатуры, может стоять на месте, «поедает» кусты (куст при этом исчезает) и получает за это очки. При столкновении с камнем – теряет жизнь.

1.2 Пакмен анимирован, по крайней мере открывает/закрывает рот когда движется.

1.3 Сохранение/загрузку игры в файл, доску почета (с указанием имени игрока при его внесении на доску).

2. Дополнительные функции

2.1 Раздел «помощь и советы».

2.2 Возможность включения/отключения увеличенной скорости пакмена.

2.3 Несколько ботов, которые движутся не поедая кусты, при столкновении с ними пакмен теряет жизнь или очки.

2.4 Несколько видов ботов.

2.5 Пасхальное яйцо.


Алгоритм реализации

Язык для разработки был выбран Java с использованием стандартных форм JFrame и панелей. В качестве работы с файлами выбор пал на формат json, позволяющий структурировать информацию в файле. Для работы с таким форматом передачи данных json, была подключена библиотека Gson позволяющая сериализовать и десериализовать данные. В качестве среды разработки была выбрана Intellij Idea. Проект формата – maven. Данный проект позволяет привязать библиотеку несколькими строками, которая загружается в автоматическом режиме в IDE Intellij Idea.

Было создано 4 класса – Pacman, Panel, Leader, Game.

В классе Pacman происходит создание окна с меню и добавлением панель, которая является класс Panel. Данный класс наследуется от класса JFrame, позволяющий реализовать окно. Меню окна находится сверху как и обычно у стандартных приложений. В данном меню были добавление пункты – сохрание, загрузка,  лидеры, помощь. Вызовы соответствующих функций данных пунктов реализованы в классе Panel, в которой и описана игра. В качестве вывода информации о помощи, последний пункт, применялся стандартный способ вывода сообщений в java – JoptionPane.ShowMessageDialog. Конструктор класса Panel производит инициализацию класса Panel, добавление данного класса в окно созданное и вызов функции по созданию меню.

В классе Panel происходит описание собственно игры. Наследуется от класса JPanel(для реализации отрисовки в панели, т.к. этот объект является панелью которая добавляется в окно в классе Pacman) и использует интерфей ActionListener(для чтения ввода пользователя). В классе описаны движения ботов(призраков), движения игрока(пакмена), рисование объектов модели, события при нажатии, события при смерти, события при пересечении объектов различных в модели игры и т.п. Все данные об игре, хранятся в классе Game. В данном классе, Panel, реализована с работа с ними. Движение призраков и пакмена практически идентично, за исключением что призраки могут проходить сквозь камни без последствий. Собственно движение представляется собой перемножение направления на скорость и суммой данного со старой переменной отвечающей за координату. Направление определяется в случае с призраками случайно, а в случае пакмена в зависимости от введенных пользователем клавиши. Переменная характеризующая направление может хранить числа от -1 до 1, что соответствует движению, если брать координаты по X, влево и вправо. Карта игры рисуется исходя из сгенерированного массива данных. Массив одномерный. Цифры соответствующие объектам на карте - 2(камень), 4(пасхальное яйцо), 16(трава). Сохранение игры происходит путем указания пути и название файла, преобразования объекта Game в формат json и записи в файл с форматом .json. Загрузка сохраненной игры представляет собой выбор файла из проводника(в формате json ранее сохраненный) и после прочтения строки происходит преобразование в объект Game с помощью библиотеки Gson. Таким образом благодаря библиотеке Gson, загрузка и сохранение файлов со строкой json реализуема практически в 2-х строках. В данном классе есть описание таблицы лидеров. После каждой завершенной игры, т.е. игрок умер, пользователю предлагается ввести имя. Данное имя после передается в массив объектов, который запишется в файл посредством использования Gson библиотеки. Вывод таблицы лидеров производится в меню окна, а функция описана в данном классе. Производится сортировка по убыванию лидеров таблицы и выводятся 3 лучший игрока по количеству очков. Игрок может ускоряться в 2 раза и возвращаться на обычную скорость по нажатию кнопки – А. Доступно и остановка игрока кнопкой – S. Завершение игры производится с помощью – Esc.

...

Скачать:   txt (53.3 Kb)   pdf (1.5 Mb)   docx (1.4 Mb)  
Продолжить читать еще 46 страниц(ы) »
Доступно только на Essays.club