Обзор методов и средств реализации поставленной задачи. Описание компьютерной игры "Японские кроссворды". Обоснование инструментария разработки программного продукта. Алгоритмический анализ задачи. Графический интерфейс и лингвистическое обеспечение.
Компьютерная игра - компьютерная программа или часть компьютерной программы, служащая для организации игрового процесса, связи с партнерами по игре, или сама выступающая в качестве партнера. Игрок имеет лишь возможность досрочного прекращения игры путем ее останова. В ходе разгадывания кроссвордов осуществляется подсчет очков и времени, затраченного игроком для решения кроссворда. Учитывая это, игра должна обладать сложным развитым графическим интерфейсом, содержащим общепринятый для данной ОС набор элементов управления и доступа к функциям игры, хотя и при необходимости видоизмененный с учетом специфики интерфейсов компьютерный вид. Игровой интерфейс - это совокупность графических образов и элементов управления, которые позволяют игроку взаимодействовать с игрой и позволяют игре информировать игрока об игровых событиях.
Введение
Среди всего многообразия разрабатываемых программных продуктов выделяют особый класс программных средств, называемый компьютерными играми.
Компьютерная игра - компьютерная программа или часть компьютерной программы, служащая для организации игрового процесса, связи с партнерами по игре, или сама выступающая в качестве партнера.
Компьютерные игры относятся к разряду развлекательных, не решающих производственные, учетные и другие задачи, что определяет особенности их функционального набора, алгоритма работы и интерфейса.
Особенность компьютерных игр заключается в наличии сложных алгоритмов, которые определяют ход игры в зависимости от действий пользователя (игрока), при этом, зачастую, такие действия предугадать невозможно. Потому алгоритм должен предусматривать обработку как можно большего набора вариантов действий, что значительно их усложняет. Кроме того, учитывая развлекательный характер компьютерных игр, их интерфейс должен обладать интерактивностью и сложными элементами графики.
В настоящем курсовом проекте осуществляется разработка компьютерной игры «Японские кроссворды». Для реализации поставленной задачи необходимо решить следующие цели: - проведение анализа требований, предъявляемых к компьютерным играм;
- проведение алгоритмического анализа задачи, разработка графического интерфейса игры и ее лингвистического обеспечения;
- разработка компьютерной игры с применением автоматизированной среды разработки «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 - Код на начало новой игры
Аналогично осуществляется переход к окнам «Правила», «Рекорды», «Выход».
Для реализации игрового поля необходимо создать массив объектов класса «TIMAGE», который состоит из 100 элементов. Во время запуска процесса игры они рисуются в центре формы и подгружают картинки из хранилища «IMAGELIST». Для отображения картинок используется код, изображенный на рисунке 3.4.
Рисунок 3.4 - Код для инициализации игрового поля
Для реализации сетки игрового поля необходимо создать массив объектов класса «TIMAGE», который состоит из 169 элементов. Во время запуска процесса игры они рисуются в центре формы и подгружают картинки из «IMAGELIST». Для отображения картинок используется код, изображенный на рисунке 3.5.
Рисунок 3.5 - Код для отображения сетки игрового поля
Решение кроссворда хранится в массиве mas [100]. При нажатии на Image [i] в его свойство «Tag» заносится 1, при первом нажатии, либо 0, при втором. При нажатии на кнопку «Проверить» сравниваются элементы mas [100] с элементами Image [100] -> Tag, если значения полностью совпадают, то появляется окно с регистрацией пользователя и просмотром результатов, если нет, то сообщение об ошибке. Код изображен на рисунке 3.6.
Рисунок 3.6 - Код для решения кроссворда
Размещено на
Вы можете ЗАГРУЗИТЬ и ПОВЫСИТЬ уникальность своей работы