Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ляхов Записка КП ООП.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
896 Кб
Скачать
☆

5.4 Разработка алгоритмов

Волновой алгоритм - Рис 5.4.1

5.5 Диаграмма классов

Рис. 5.5.1 - Диаграмма классов проекта

Рис. 5.5.2 - Диаграмма классов проекта

5.6 Описание классов

  • MainWindow

Описание: реализация графического интерфейса для взаимодействия с пользователем на игровом поле.

  • RatingWindow

Описание: реализация записи и вывода рейтингов на экран.

  • Renderer

Описание: прорисовка объектов на поле.

  • MapLoader

Описание: считывание файла map.txt, в котором содержится разметка карты и преобразование полученных данных в специальный пользовательский тип данных Map для его дальнейшей обработки.

  • Game

Описание: создание игрового поля полученного ранее и объектов на нём, а также обработка внешних (от пользователя) и внутренних(от «привидений») событий в игре.

  • StartWindow

Описание: приглашение к игре пользователя, а также настройки громкости звука и предоставляет возможность открытие окна с рейтингом.

  • RestartWindow

Описание: предлагает пользователю продолжить игру или закончить после её окончания.

  • GameElement

Описание: абстрактный класс для игровых элементов. Содержит свойства позиционирования элемента на карте.

  • Block

Описание: наследник от GameElement. Представляет собой заблокированную клетку, через которую нельзя пройти ни пользователю, ни «привидениям».

  • Pellet

Описание: наследник от GameElement. Это клетка с белой точкой, которая приносит очко игроку.

  • Sprite

Описание: наследник от GameElement. Этот класс содержит в себе основные методы для игрока и привидений - передвижение по игровому полю.

  • Player

Описание: наследник от Sprite. Класс пользователя. Содержит метод «поглощения» белых точек на карте.

  • Ghost

Описание: наследник от Sprite. Родительский класс для привидений. Содержит метод поиска пути к объекту пользователя и «поглощения» этого же объекта.

  • Blynki

Описание: наследник от Ghost. Красное привидение. Содержит следующий алгоритм поиска движения: 150 шагов он следует за объектом игрока, 50 стремится в верхний левый угол экрана.

  • Inky

Описание: наследник от Ghost. Синее привидение. Содержит следующий алгоритм поиска движения: 130 шагов он следует за объектом игрока, 70 в качестве цели для движения точка, координатами которой является один из концов отрезка, другим концом которого является Blinky, а центром — точка на 2 клетки перед пакменом.

  • Clyde

Описание: наследник от Ghost. Жёлтое привидение. Содержит следующий алгоритм поиска движения: если Clyde находится дальше 9 клеток от объекта пользователя, то он использует в качестве цели объект пользователя (как Blinky), если же пакмен ближе 9 клеток, то Clyde меняет цель на точку «выше» верхнего левого угла.

  • Pynki

Описание: наследник от Ghost. Розовое привидение. В качестве цели использует точку, на 4 клетки находящуюся впереди пакмена.

  1. Технологическая часть

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

Название

Входные данные

Полученный результат

Попытка запустить игру без ввода имения пользователем

В стартовом окне нажимаем кнопку «Начать игру»

Вывод сообщения, которое предлагает ввести имя пользователя

Запуск игры, после удаление/переименование файла map.txt.

В стартовом окне вводим имя пользователя и нажимаем кнопку «Начать игру»

После запуска игры вывод сообщения об ошибке и закрытие программы

Выбор опции просмотр рейтинга

В стартовом окне нажимаем кнопки «Показать рейтинг»

Вывод окна с рейтингом предыдущих игроков

Выбор опции просмотр рейтинга, удалив перед этим файл rating.r

В стартовом окне нажимаем кнопки «Показать рейтинг»

Вывод пустого окна

Запуск игры с «испорченным» файлом map.txt

В стартовом окне вводим имя пользователя и нажимаем кнопку «Начать игру»

Вывод сообщения о том, что файл испорчен и программа завершает своё выполнение

Запуск игры с корректным файлом map.txt

В стартовом окне вводим имя пользователя и нажимаем кнопку «Начать игру»

Проигрывание музыки и после её окончания начинается процесс игры

Во время игры начинаем игру заново.

В игровом поле, в меню, выбираем пункт «Начать заново»

Возвращения всех элементов поля в начальное значение, проигрывание музыки и после его окончания начинается процесс игры

Остановка игры на паузу

В игровом поле, в меню, выбираем пункт «Пауза/Продолжить»

Объекты на игровом поле «замирают».

Объект пользователя находится на одной точке с «белой точкой»

Нажатие на клавиши-стрелки пользователем

Удаления «белой точки» с игрового поля сопровождаемое специальным звуком и добавление очков к рейтингу пользователя

Объект пользователя находится на одной точке с «привидением» Блинки

Нажатие на клавиши-стрелки пользователем

Выводится сообщение, о том, что пользователь проиграл, и открывается финальное окно.

Объект пользователя «съел» все «белые точки»

Нажатие на клавиши-стрелки пользователем

Выводится сообщение, о том, что пользователь выиграл, и открывается стартовое окно.