Разработка программы-игры "Крестики-нолики"

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



Оглавление

Введение

. Анализ проблемы

. Алгоритмическое конструирование

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

. Тестирование программы

Заключение

Список использованной литературы

Приложение

Введение

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

Например, популярные в последнее время небольшие игры (чаще всего многопользовательские, через сеть Интернет) создаются по технологии Flash с использованием языка ActionScript. Такие игры крайне популярны на разнообразных развлекательных интернет-ресурсах и а социальных сетях.

Большие, сложные игры с реалистичной 3D графикой пишутся на C++, отдельные модули к ним могут быть написаны на других языках (например AI - искусственный интеллект - на Lisp). Вообще, язык для создания игры выбирается как компромисс между требованиями к игре, к компьютерному железу и к стоимости разработки.

На подавляющем большинстве мобильных телефонов установлены ARM процессоры. Поэтому игры для мобильных телефонов на платформе Java пишутся на специальном языке для мобильных телефонов MobileBasic, а также на диалекте языка Pascal - MIDletPascal.

Также существуют специальные программы для написания игр. Яркий пример - программа GameMaker, автором которой является Марк Овермас. Эта программа позволяет написать захватывающую игру даже без знания языков программирования!

В рамках курсовой работы необходимо разработать небольшую программу игры в крестики-нолики пять в ряд на поле размера 15х15 клеток с применением графики на языке высокого уровня с использованием объектно-ориентированного программирования.

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

1. Анализ проблемы

Для реализации этой задачи использовался язык программирования Pascal и среда разработки PascalABC.Net - оболочка, основанная на Delphi (Object Pascal) и сочетающая простоту языка Паскаль и огромные возможности платформы .NET (платформа от корпорации MicroSoft).

Крестики-нолики - логическая игра между двумя противниками на квадратном поле 3 на 3 клетки или боольшего размера (вплоть до бесконечного поля). Один из игроков играет крестиками, второй - ноликами.

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

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

Игра ведется на поле 15х15, разлинованном в клетку, рассчитана на 2-х игроков. Первый ход совершает пользователь, играющий крестиками. Перед игрой противники решают, кто будет играть крестиками, а кто ноликами. В ходе игры противники ставят по очереди крестик или нолик (в зависимости от договоренности перед началом игры) в свободную клетку на поле.

Цель игры - построить линию из 5 стоящих рядом по вертикали, горизонтали или диагонали крестиков или ноликов. Первый игрок, построивший такую комбинацию из знаков своего типа (крестиков или ноликов) выигрывает.

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

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

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

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

Элемент массива может принимать следующие значения:

- клетка пуста;

- в клетке крестик;

- в клетке нолик;

Алгоритм работы: производится перерисовка клеток игрового поля. В зависимости от значений массива выводится в клетку:

- ничего не выводит;

- крестик зеленым цветом;

- нолик красным цветом;

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

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

1)Код нажатых клавиш клавиатуры.

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

1)Игровое поле, заполненное крестиками и ноликами, отображаемое на экране.

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

Для всех операций были использованы стандартные возможности Паскаля, так что не понадобилось даже использования сторонних библиотек. Возможно, к списку сторонних модулей можно отнести модуль Timers (встроенный модуль в PascalABC.NET) для вывода оставшегося времени на совершение хода игрока.

Для написания интерфейса в работе использовался модуль GraphABC.

2. Алгоритмическое конструирование

В данном пункте приводится описание работы про