Разработка компьютерной игры "Японские кроссворды"

Тип работы:
Курсовая
Предмет:
Программирование


Узнать стоимость

Детальная информация о работе

Выдержка из работы

Введение

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

Компьютерная игра -- компьютерная программа или часть компьютерной программы, служащая для организации игрового процесса, связи с партнёрами по игре, или сама выступающая в качестве партнёра.

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

Особенность компьютерных игр заключается в наличии сложных алгоритмов, которые определяют ход игры в зависимости от действий пользователя (игрока), при этом, зачастую, такие действия предугадать невозможно. Потому алгоритм должен предусматривать обработку как можно большего набора вариантов действий, что значительно их усложняет. Кроме того, учитывая развлекательный характер компьютерных игр, их интерфейс должен обладать интерактивностью и сложными элементами графики.

В настоящем курсовом проекте осуществляется разработка компьютерной игры «Японские кроссворды». Для реализации поставленной задачи необходимо решить следующие цели:

— проведение анализа требований, предъявляемых к компьютерным играм;

— проведение алгоритмического анализа задачи, разработка графического интерфейса игры и ее лингвистического обеспечения;

— разработка компьютерной игры с применением автоматизированной среды разработки «C++ Builder», ее апробация и верификация.

Результатом курсового проекта является компьютерная игра «Японские кроссворды», а также пояснительная записка, которая содержит в себе три раздела, последовательно описывающих весь процесс проектирования.

1. Обзор и анализ методов и средств реализации поставленной задачи

1.1 Описание компьютерной игры

Компьютерная игра «Японские кроссворды» является однопользовательской.

«Японские кроссворды» -- это увлекательная логическая игра, цель которой -- разгадать зашифрованный черно-белый рисунок.

Японский кроссворд состоит из области для картинки в виде равномерной сетки и двух областей слева и сверху для чисел, записанных построчно (для расположенных слева) и по столбцам (для расположенных сверху). Каждое отдельное числовое значение описывает группу закрашенных клеток сетки из зашифрованного изображения, расположенных последовательно горизонтально и в одной с числом строке, если рассматривать значение в левой области, и вертикально и в соответствующем столбце для чисел в верхней области. Между двумя соседними группами закрашенных клеток обязательно должно быть расстояние не менее одной клетки на картинке японского кроссворда.

Поставить игру на паузу невозможно. Игрок имеет лишь возможность досрочного прекращения игры путем ее останова.

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

Правильность построения кроссворда игрок может оценить визуально путем прослеживания поступившего изображения. Однако предусматривается также программная проверка.

По завершению игры предлагается ввести имя игрока для выстраивания рейтинга.

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

1.2 Обоснование инструментария разработки компьютерной игры

Выбор инструментария программного обеспечения в первую очередь обуславливается операционной системой (ОС) в которой предполагается его использование. Эксплуатация компьютерной игры «Японские кроссворды» будет происходить в операционных системах семейства «Windows». Учитывая это, игра должна обладать сложным развитым графическим интерфейсом, содержащим общепринятый для данной ОС набор элементов управления и доступа к функциям игры, хотя и при необходимости видоизмененный с учетом специфики интерфейсов компьютерный вид.

Наиболее подходящим для реализации указанных выше требований к разрабатываемому программному обеспечению является среда разработки «Borland C++ Builder», поддерживающая компонентно-ориентированный подход к разработке программных систем, инструмент быстрой разработки приложений (RAD).

Среда «C++ Builder» объединяет в себе комплекс объектных библиотек (STL, VCL, CLX, MFC и др.), компилятор, отладчик, редактор кода и многие другие режимы. Разработка программного обеспечения в данной среде осуществляется на языке программирования «С++».

«C++ Builder» предоставляет программисту широкие возможности повторного использования кода не только за счет наличия библиотеки компонентов, но и за счет поддержки стандарта «ActiveX», что позволяет встраивать в приложения «ActiveX» -- компоненты как сторонних производителей, так и созданные собственноручно с помощью самого «C++Builder».

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

Следует отметить, что эффективность разработки и отладки приложений достигается не только за счет использования удобных средств визуального проектирования форм (сейчас это не редкость), но и за счет, во-первых, высокой производительности самих компиляторов «Borland» и, во-вторых, так называемой инкрементной компиляции и компоновки исполняемого модуля (когда перекомпиляции и перекомпоновке подвергаются только те модули, в которые были внесены изменения).

Для разработки базы данных в компьютерной игре следует использовать реляционную СУБД «Microsoft Access». Основными функциями СУБД являются определение данных (описание структуры баз данных), также СУБД позволяет хранить и обрабатывать данные, подготавливать отчеты, контролировать правильность данных на стадии их ввода, создавать формы для более удобной работы с данными (интерфейс).

2. Алгоритмический анализ задачи. Разработка графического интерфейса и лингвистического обеспечения задачи

2.1 Алгоритм и технологии решения задачи

Схема алгоритма устанавливает последовательность выполнения действий в программе, реализующих принцип функционирования компьютерной игры.

Исходя из постановки задачи определенной в разделе 1, правил игры и принципов ее реализации, становится возможным определить последовательность ее работы.

Так, первым этапом происходит инициализация игрового поля.

Вторым этапом пользователь нажимает на ячейку кроссворда.

На третьем этапе происходит проверка на соответствие закрашенных клеток требуемому значению. Если число закрашенных клеток не соответствует требуемому, то пользователь возвращается к второму этапу, а если же число закрашенных клеток соответствует, то увеличивается количество очков.

На заключительном пятом этапе происходит регистрация пользователя и запись результата игры в накопитель.

Схема описанного выше алгоритма представлена в приложении В.

2.2 Графический интерфейс и лингвистическое обеспечение задачи

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

Интерфейс пользователя -- это элементы и компоненты программы, которые способны оказывать влияние на взаимодействие пользователя с программным обеспечением. японский кроссворд компьютерный игра

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

С учет описанных выше принципов и требований становится возможным разработка требования к составу и оформлению графического интерфейса игры «Японские кроссворды».

При разработке интерфейса необходимо учесть ряд особенностей:

— интерфейс должен быть интуитивно понятен простому пользователю;

— цветовая схема не должна раздражать игрока.

Графический интерфейс игры является многооконным. В состав графической части входят окна:

— окно меню, в котором игрок выбирает пункт меню;

— главное окно, в котором игрок будет осуществлять процесс игры;

— окно таблицы рекордов;

— окно справки, которое содержит правила игры.

Окно меню содержит основные стандартные элементы:

— изображения, которые содержат названия кнопок;

— надпись, которая отражает название игры.

Окно главной формы содержит следующие элементы:

— игровое поле зеленого цвета размером 425 495 пикселей;

— изображения, которые содержат названия кнопок;

На рисунке 2.1 представлена схема главного окна графического интерфейса пользователя.

Рисунок 2.1 -- Схема главного окна графического интерфейса:

1 -- область игрового поля; 2 -- область проверки правильности решения кроссворда; 3 -- область для выхода

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

Вывод результатов игры осуществляется в текстовые многострочные поля. Редактирование выводимого текста в них запрещено, текст можно лишь просмотреть. Таким образом, для повышения уровня интуитивности и практичности проектируемого графического пользовательского интерфейса, а также оптимизации временных затрат на разработку был применен набор навигационных стандартов проектирования графических интерфейсов. Полученные решения позволили реализовать в базовой модели графического интерфейса компьютерной игры необходимые средства выполнения заданного ее функционала. При этом за счет применения стандартных решений в форме образцов программных компонент снижены временные затраты на разработку игры в целом.

Программа предназначена для приятного проведения свободного времени и относится к категории развлекательного программного обеспечения. Она не должна иметь сложную систему управления игровым процессом. Поэтому, была использована всем известная система управления программой -- строка меню. Каждому пункту меню присвоено название, соответствующее функциональному назначению. Это облегчает управление игровым процессом.

Следующим этапом в разработке игры является выбор вида интерфейса для определения способа общения пользователя и системы автоматизированного проектирования и описания лингвистического обеспечения.

В рамках данной разработки будет применен WIMP-интерфейс (Window -- окно, Image -- образ, Menu -- меню, Pointer -- указатель). Характерной особенностью этого вида интерфейса является то, что диалог с пользователем ведется не с помощью команд, а с помощью графических образов — меню, окон и других элементов. Хотя и в этом интерфейсе подаются команды компьютеру и программе, но это делается посредственно, через графические образы.

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

В данном разделе приведено описание правил игры «Японские кроссворды» в рамках выбранной модели WIMP-интерфейса.

При запуске игры игроку предоставляется окно с пунктами меню для управления игровым процессом. Выбор пунктов меню производится нажатием левой кнопки манипулятором «мышь».

При выборе пункта «Игра», игроку открывается главное окно, в котором происходит игровой процесс. При выборе пункта меню «Правила» появляется окно, в котором отражены правила игры. При выборе пункта меню «Рекорды» открывается окно, которое содержит поля для просмотра результатов о сыгранных играх.

Каждый раз при выборе того или иного пункта меню окно меню скрывается, возврат к нему производится через другие формы, путем нажатия соответствующих кнопок.

Для защиты игры от нерегламентированных действий игрока используется также контроль очередности выполнения действий. Необходимость в нем обусловлена тем, что разрабатываемая игра имеет жесткую последовательность выполнения функций. Некоторые действия при работе игры требуют от игрока дополнительного подтверждения на их выполнение, что заставляет его очередной раз осмыслить намерение выполнить операцию и давать себе отчет к чему это может привести. Так, при нажатии на кнопку «Выход», появляется окно для подтверждения выхода или отмены.

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

3. Программная реализация задачи

3.1 Описание базы данных и методов работы с ней

Для хранения результатов программа использует базу данных, созданную в СУБД «Microsoft Access». База данных имеет следующую структуру, представленную в таблице 3.1.

Таблица 3.1 -- Структура таблицы «Рекорды»

Имя поля

Тип данных

Описание

Resultat

Числовой

Содержит рекорд, который принадлежит пользователю с именем, указанном в Name

Name

Текстовый

Содержит имя пользователя, которому принадлежит рекорд

Для сохранения результатов сыгранных игр необходимо использовать компоненты ADOQuery и Image. Используемые методы и свойства приведены в таблице 3.2.

Таблица 3.2 -- Свойства компонента «ADOQuery»

Наименование

Общее назначение

Цель использования в программе

Active

Свойство компонента, отвечающее за его акт-ивность

Значение установлено в true

ConnectionString

Свойство компонента, отвечающее за связь БД на жестком диске и настройках провайде-ра

Провайдер выбирается:

Provider=Microsoft. Jet. OLEDB.4. 0;

Путь к БД выбран:

Data Source=D: db. mdb;

Persist Security Info=False

SQL

Свойство компонента, отвечающее за полу-чение данных из БД

Получение сведений из базы данных

Для осуществления просмотра сведений из базы данных необходимо реализовать SQL-запрос на выборку данных с ключевым словом SELECT. Код изображен на рисунке 3.1.

Рисунок 3.1 -- SQL-запрос на выборку данных из БД

Для закрытия окна рекордов по нажатию на кнопку «Назад», необходимо на событие «OnClick» компонента «Image» использовать код, изображенный на рисунке 3.3. Закрытие остальных окон программы происходит по аналогии.

Рисунок 3.3 -- Код на закрытие окна «Рекорды»

3.2 Описание компонентов программной реализации

Для реализации игрового процесса необходимо описать класс «cros». Методы данного класса представлены в таблице 3.3.

Таблица 3.3 -- Структура класса «cros»

Метод

Тип

Назначение

prov ()

Public

Метод предназначен для проверки соответствия числа закрашенных клеток требуемому

ris ()

Public

Метод предназначен для инициализации игрового поля

ris2()

Public

Метод предназначен для рисования сетки игрового поля

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

Таблица 3.4 -- Использованные компоненты и их назначение

Компонент

Назначение

Form

Предназначен для создания окон в программе

Label

Отображение статического и динамического текста, который не изменяется пользователем

Edit

Создает на форме поле для редактирования текстовой строки

Image

Предназначен для создания на форме невидимого контейнера, в который можно поместить один графический файл с битовым образом, пиктограммой или метафайл

Timer

Предназначен для задания временного интервала для создания и изменения положения фигур

ADOQuery

Обеспечивает связь базы данных с приложением

Для создания рабочей области необходимо использовать компонент «Form». Свойства и методы, используемые в процессе разработке, приведены в таблице 3.5.

Таблица 3.5 -- Используемые свойства и методы класса TForm

Наименование

Общее назначение

Цель использования в программе

BorderStyle

Свойство, отвечаю-щее за вид обрамле-ния окна

На всех формах данному свойству присваивается значение «bsNone»

Caption

Заголовок формы

Заголовки форм

Position

Расположение формы на экране

На всех формах данному свойству присваивается значение «poScreenCenter»

В процессе разработки игры «Японские кроссворды» используются следующие переменные, представленные в таблице 3.6.

Таблица 3.6 -- Структура таблицы переменных

Наименование переменной

Тип

Вид

Модуль

Описание

*Image[169]

TImage

Глобальная

Unit5

Массив картинок, предназначенный для отображения сетки

*Image[100]

TImage

Глобальная

Unit5

Массив картинок, предназначенный для отображения игрового поля

I

Int

Локальная

Unit6

Переменная, предназ-наченная для работы циклов

a[11]

Int

Локальная

Unit6

Целочисленный мас-сив, хранящий резуль-тат

Y

Int

Локальная

Unit6

Переменная, предназ-наченная для хранения координат по оси у

s[11]

String

Локальная

Unit6

Строковый массив, хранящий имена игро-ков

i, j

Int

Глобальная

Unit5

Переменные, предназ-наченные для работы циклов

Och

Int

Глобальная

Unit5

Переменная, предназ-наченная для хранения количества набранных очков

mas[100]

Int

Глобальная

Unit5

Целочисленный мас-сив, хранящий реше-ние кроссворда

K

Int

Локальная

Unit5

Переменная, предназ-наченная для работы циклов

U

Int

Локальная

Unit5

Переменная, предназ-наченная для опреде-ления результата игры

X

Int

Локальная

Unit5

Переменная, предназ-наченная для хранения координат по оси х

Y

Int

Локальная

Unit5

Переменная, предназ-наченная для хранения координат по оси у

Фон окна главного меню игры «Японские кроссворды» реализован путем загрузки в компонент «Image» (свойство «Picture») графического изображения на этапе разработки. Изображение статическое, в программе механизмов его изменения нет.

Для реализации кнопки необходимо использовать два компонента «Image», расположенных один под другим. Компоненту, который находится на переднем плане изменить свойство «Visible» на значение «false», чтобы сделать невидимым. Нижний компонент отражает название кнопки.

Для перехода к главному окну игры по нажатию на кнопку «Игра» «мышью» необходимо на событие «OnClick» компонента «Image» использовать код, изображенный на рисунке 3.2.

Рисунок 3.2 -- Код на начало новой игры

Аналогично осуществляется переход к окнам «Правила», «Рекорды», «Выход».

Для реализации игрового поля необходимо создать массив объектов класса «ТImage», который состоит из 100 элементов. Во время запуска процесса игры они рисуются в центре формы и подгружают картинки из хранилища «ImageList». Для отображения картинок используется код, изображенный на рисунке 3.4.

Рисунок 3.4 -- Код для инициализации игрового поля

Для реализации сетки игрового поля необходимо создать массив объектов класса «ТImage», который состоит из 169 элементов. Во время запуска процесса игры они рисуются в центре формы и подгружают картинки из «ImageList». Для отображения картинок используется код, изображенный на рисунке 3.5.

Рисунок 3.5 -- Код для отображения сетки игрового поля

Решение кроссворда хранится в массиве mas [100]. При нажатии на Image [i] в его свойство «Tag» заносится 1, при первом нажатии, либо 0, при втором. При нажатии на кнопку «Проверить» сравниваются элементы mas [100] с элементами Image [100] -> Tag, если значения полностью совпадают, то появляется окно с регистрацией пользователя и просмотром результатов, если нет, то сообщение об ошибке. Код изображен на рисунке 3.6.

Рисунок 3.6 -- Код для решения кроссворда

ПоказатьСвернуть
Заполнить форму текущей работой