Содержание
1.2 Технико-математическое описание. 6
1.3 Программное обеспечение. 9
1.4 Состав и параметры технических и программных средств. 12
2.2 Описание работы программы.. 16
2.3 Инструкция по выполнению программы.. 18
2.4 Тестирование и отладка. 22
Приложение А. Текст программы.. 31
В последнее время в связи с ростом объема информации активно развиваются компьютерные технологии.
Компьютеры применяются практически во всех сферах человеческой деятельности: в науке, в образовании, в производстве, в бухгалтерии и так далее. Также компьютерные технологии широко используются и в развлекательных целях.
Задачей курсового проектирования ставится разработка игровой программы «Нарды», которая является виртуальным аналогом настольной игры. Перенос реальной игры на виртуальную основу имеет ряд преимуществ:
– позволяет немедленно приступить к игре без каких либо действий по ее подготовке;
– исключает возможность жульничества во время игры;
– исключает возможность случайных нарушений правил игры в связи с их незнанием;
– позволяет сохранять текущие результаты игры и продолжать партию в другое время.
Таким образом внедрение компьютерных технологий позволяет существенно облегчить процесс игры как для новичков так и для опытных игроков.
Благодаря современным технологиям можно добиться высокой степени наглядности виртуальных настольных игр. Возможно моделирование поведения различных объектов, особенно это актуально в тактических настольных играх, использующих различные фишки и фигуры и технологию трехмерного отображения. Использование таких игр является более экономически оправданным в силу дешевизны исходных материалов, так как стоимость хранения информации в файлах ЭВМ дешевле, чем изготовление реальных настольных игр.
Использование виртуальных настольных позволяет использовать персональный компьютер в качестве оппонента (или оппонентов). Это достигается благодаря программированию определенных алгоритмов и созданию, так называемого, искусственного интеллекта, который совершает действия аналогичные действиям совершаемым реальными людьми в процессе игры.
Также существует возможность программирования нескольких уровней искусственного интеллекта путем ограничения просчитываемых компьютером ходов (например, при игре в шахматы при неограниченном количестве просчитываемых вперед ходов победа над искусственным интеллектом невозможна).
При использовании виртуальных настольных игр существует возможность обучения правилам игры непосредственно в процессе игры при помощи встроенного помощника, а также игрок может повысить свое мастерство поднимая уровень искусственного интеллекта.
Соперником может являться не только запрограммированная машина, но и, как и в реальных настольных играх, реальный человек. Игра нескольких человек может быть реализована как на одном компьютере, так и нее нескольких при помощи сетевых технологий. Использование сетевых технологий позволяет находить реального оппонента для игры в локальных и глобальных сетях.
Игровая программа «Нарды» рассчитана для двух игроков, не обладает возможностью игры против искусственного интеллекта, но алгоритмы программы «пристально следят» за соблюдением правил игры, тем самым облегчая задачу игрокам, а также помогая новичкам освоиться с игрой. Программа обладает приятным интуитивно понятным интерфейсом и внешне очень напоминает реальную настольную игру. Реализованы все возможности реальной игры и ее ограничения.
Задание курсового проекта - разработать игровую программу «Нарды», которая должна предоставлять все средства для игры в соответствующую игру на персональном компьютере.
Целью разработки является реализация качественного программного продукта.
Программа должна быть построена по модульно-иерархическому принципу и включать блоки: РабочаяФорма, ИгровыеВычисления, Заполнение, Правила игры.
Программа должна включать в себя следующие компоненты:
- правила игры в Нарды;
- игровую плоскость;
- фишки игроков;
- механизм определения и завершения ходов;
- механизм слежения за соблюдением правил игры;
- механизм сохранения и загрузки игры.
Входными данными являются:
- файлы в формате *.SAV, содержащие информацию о сохраненных играх;
- графические изображения.
Выходными данными являются результаты ходов игроков, отображенные на игровой плоскости при помощи графических изображений и файлы в формате *.SAV, содержащие информацию о сохраненных играх.
Программа при выполнении поддерживает диалоговый режим в рамках предоставляемых пользователю возможностей, т.е. игрок знает предоставленные ему ходы, невозможные ходы блокируются автоматически.
Механизм слежения за соблюдением правил игры не позволяет игрокам жульничать ни на одном этапе игры, ставя их в одинаковые условия; победа в игре может быть достигнута только за счет собственной тактики игрока.
Программа должна быть рассчитана на непрофессионального игрока и предоставлять ему подсказки в течение игры.
Механизм сохранения и загрузки игры позволяет сохранить результаты незавершенной партии и загрузить их в любой удобный для пользователя момент. Таким образом уже достигнутые результаты затянувшейся партии не будут потеряны.
Для корректной работы программы рекомендуется операционная система WindowsXP; процессор с тактовой частотой не менее 850 МГц; видео карта с памятью не менее 64 Мб, клавиатура, мышь, pекомендуется использовать разрешение экрана 1024х768 базовый язык программирования – Delphi 7.0 .
Специальных требований к характеристикам программы не предъявляется.
Программу предполагается использовать для развития интеллектуальных способностей человека, а также для развлечения.
1.2 Технико-математическое описание
Работа программы базируется на двух основных массивах и операциях над ними. Массив mas[i,j] содержит информацию об игровом процессе, массим bones[i] содержит значения ходов игрока. При «броске» кубиков в массив bones[i] заносятся два значения в интервале от одного до щести, которые генерируются при помощи функции random, затем при помощи конструкции case выбираются два изображения кубиков, соответствующие сгенерировонным числам и выводятся на экран. Если эти значения равны, то в соответствии с правилами игры в массив заносится четыре значения.
Далее программа в цикле проверяет доступность сгенерированных ходов: программа проверяет каждую ячейку на игровом поле, пока не найдет ячейку с фишкой, принадлежащей текущему игроку. Затем проверяется возможность хода ifmas[i+bones[j],1]=0 ormas[i+bones[j],1]=player(идентификатор игрока).
Если условие выполняется хотя бы раз, то ход доступен. Все недоступные ходы блокируются.
Чтобы избежать неверного удаления доступных ходов, программа перед окончательной блокировкой проверяет, возможен ли ход bones[2] после хода bones[1] и возможен ли ход bones[1] после хода bones[2]. Для этого программа по очереди находит все ячейки с принадлежащими текущему игроку фишками, из которых возможен один из ходов, «перемещает» фишку на этот ход, пытается совершить второй ход из новой позиции.
Когда игрок приводит все свои фишки в «дом» (для первого игрока: ячейки с 19 по 24, для второго игрока: ячейки с седьмой по 12) проверко возможных ходов для этого игрока отключается, так как в этом случае игрок может совершать любые ходы, не зависимо от расположения фишек.
В случае выпадения одинаковых значений на кубиках в соответствии с правилами игры количество доступных ходов игрока удваивается. В связи с этим изменяется и процедура проверки. Процедура виртуально делает возможные ходы каждой из фишек игрока и подсчитывает количество совершенных ходов. Если это количество меньше четырех, то блокируется n ходов.
n=4-количество возможных ходов
После генерации и проверки ходов они отображаются на экране, и игрок может начать ход. При выборе ячейки, из которой нужно совершить ход, программа просчитывает, возможно ли осуществить ход из этой ячейки по формуле mas[i+bones[j],1]=0 ormas[i+bones[j],1]=player. Доступные перемещения фишки подсвечиваются стрелками на игровом поле.
После перемещения фишки программа запоминает на сколько ячеек была передвинута и обнуляет соответствующее значение в массиве bones[i].
Ход может быть завершен только в случае, когда все значения массива bones[i] равны нулю.
Если после совершения одного из доступных ходов игрок не может совершить второй, это значит, что ход совершен не по правилам. Игроку следует нажать кнопку «ОТМЕНА ХОДА», которая возвращает игровой процесс к моменту броска кубиков, и совершить другой ход, который откроет возможность использовать все доступные перемещения.
Когда все фишки игрока попадают в «дом» необходимо снимать их с игрового поля. «Дом» для первого игрока – это ячейки с 19 по 25, для второго – с седьмой по 12 и 26. Игрок считается пришедшим в дом, если: