Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2 курс / Курсовая / Содержание ПЗ.docx
Скачиваний:
35
Добавлен:
18.02.2023
Размер:
164.53 Кб
Скачать

2 Проектирование программы

Для реализации игры будет использован процедурно- эмпирический стиль программирования, при этом состояния приложения будут хранится в глобальных переменных, а результаты игроков в бинарном файле.

В программе должны быть предусмотрено следующее:

  • функция инициализации и регистрации класса главного окна;

  • функция создания и отображения главного окна;

  • функция создания и отображения списка в окне;

  • обработчик главного окна;

  • обработчик окна создания игры;

  • обработчик окна рекордов;

  • обработчик окна ввода имени для записи рекорда;

  • обработчик окна настроек;

  • функция установки параметров контекста воспроизведения OpenGL;

  • функция создания игры;

  • функция добавления новых шаров на поле;

  • функция проверки установки нового рекорда;

  • функция передвижения шара;

  • функция проверки наличия выстроенной линии шаров одного цвета;

  • функция определения возможности передвижения шара из начальной точки в конечную;

  • функция задания шрифта текста;

  • функция удаление заданного шрифта текста;

  • функция пересчета размеров окна;

  • функция отрисовки окна;

  • функция рисования шара в заданной ячейке;

  • функция вывода текста в шапку игрового поля.

Необходимо разработать в программе меню для начала новой игры, просмотра рекордов и изменения настроек. Меню окна должно выглядеть так как показано на рисунке 2.1.

Рисунок 2.1 – Прототип меню игровой программы

Игровое поле будет представлять собой рабочую область определенного размера, разделенного на строки и столбцы линиями. Сверху этой области будет находится «шапка» размером с одну строку в которой будут отображаться лучший результат за все время – рекорд, текущее значение очков которое на данный момент набрал пользователь, три цветных шара – следующие шары которые появятся на поле.

Реализация игрового поля в программе с шарами на нем могла бы выглядеть следующим образом (рисунок 2.2).

Рисунок 2.2 – Прототип игрового поля игровой программы

Для лучшего визуального восприятия при выборе шара на поле его фон должен выделятся цветом следующим образом (рисунок 2.3).

Рисунок 2.3 – Пример выделения шара на игровом поле

Алгоритм (рисунок 2.4) представляет собой вход в программу, после которого пользователю доступно игровое поле с шарами на нём. После перемещения шара пользователем, программа проверяет была ли собрана линия шаров одного цвета. В этом случае линия уничтожается и пользователю дается еще один ход. Если линия не была собрана, проверяется остались ли свободные клетки для добавления новых шаров. Если таковые имеются – шары добавляются, в противном случае игра прекращается.

Рисунок 2.4 – Обобщённая схема алгоритма работы игровой программы

3 Реализация программы

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

  • новая игра;

  • рекорды;

  • настройки.

Скриншот главного меню представлен на рисунке 3.1.

Рисунок 3.1 – Главное меню игровой программы

При выборе пункта «Новая игра» появляется модальное окно, в котором пользователю предлагается выбрать размер поля. Данной окно представлено на рисунке 3.2.

Рисунок 3.2 – Модальное окно «Новая игра»

При выборе пункта «Рекорды» появляется модальное окно, в котором отображаются лучшие 10 результатов за все игры. Данной окно представлено на рисунке 3.3.

Рисунок 3.3 – Модальное окно «Рекорды»

При выборе пункта «Настройки» появляется модальное окно, в котором можно включить или отключить звук, выбрать значение размера поля и длины уничтожаемой линии из предложенных. Данной окно представлено на рисунке 3.4.

Рисунок 3.4 – Модальное окно «Настройки»

Игровое поле (рисунок 3.5), на котором размещены шары, отображены значения лучшего результата и очков, набранных игроком за данную игру, а также три шара которые появятся следующими.

Рисунок 3.5 – Игровое поле

При наборе игроком достаточного количества очков для попадания в таблицу рекордов по окончанию игры для него выводится модальное окно, в которое необходимо ввести имя (рисунок 3.6).

Рисунок 3.6 – Окно ввода имени рекордсмена

В программе предусмотрены следующие функции:

  • InitClass – инициализация и регистрация класса;

  • InitInstance – создание и отображение главного окна;

  • ListView – создание и отображение списка в окне;

  • WndProc – обработчик главного окна;

  • NewGame – обработчик окна создания игры;

  • Records – обработчик окна рекордов;

  • RecordName – обработчик окна ввода имени для записи рекорда;

  • Settings – обработчик окна настроек;

  • SetWindowPixelFormat – установка параметров контекста воспроизведения OpenGL;

  • CreateGame – создание игры;

  • AddNextBall – добавление новых шаров на поле;

  • CheckRecord – проверка установки нового рекорда;

  • MoveBall – функция передвижения шара;

  • IsLinedUp – проверка собрана ли линия шаров одного цвета;

  • IsAvailable – проверка возможности передвижения шара из начальной точки в конечную;

  • SetFont – задание шрифта текста;

  • KillFont – удаление шрифта текста;

  • Resize – пересчет размеров окна;

  • Render – отрисовка окна;

  • DrawBall – рисование шара в заданной ячейке;

  • DrawString – вывод текста;

Соседние файлы в папке Курсовая