Курсовая работа: Игровая программа 15
После того, как массив оказывается заполненным можно приступать к рисованию фишек игрового поля и их нумерации соответствующими числами из массива.
В качестве фишки игрового поля используется параллелепипед, координаты которого меняются с помощью двух циклов с параметром. Таким образом, вырисовываются все 16 фишек.
После того как ‘оформлено‘ игровое поле, случайным образом сформирован массив чисел, следует этап, на котором происходит обработка результата нажатия пользователем клавиши. Игрок активизирует одну из фишек при помощи клавиш UP, DOWN, LEFT,
RIGHT. Коды соответствующих клавиш обрабатываются, и в зависимости от того какая клавиша нажата, происходит изменение координат курсора передвигающегося по фишкам игрового поля. Первоночально координаты курсора подобранны так, что бы он находился в правом нижнем углу.
Как только пользователь попытается ‘сдвинуть‘ активизированную фишку на пустую клеточку (с помощью клавиши пробела), то здесь происходит обработка ситуации на возможность сдвига. Если фишка, которую выбрал пользователь, расположена рядом с пустой клеточкой, то происходит обмен. Элементы массива меняются местами.
Если обмен произошел, то число шагов увеличивается на единицу и производится печать на экране нового числа (данная процедура была описана на начальной стадии алгоритмизации).
Изменив положение чисел в массиве, следует проверить не расположились ли они по порядку. Если элементы действительно расположены по возрастанию, то происходит инициализация процедуры победы. Результат игрока сравнивается с лучшими результатами. В том случае, если он превосходит хотя бы один из рекордов, производится запрос имени игрока. После того, как игрок введет свое имя, происходит обновление файла, содержащего лучшие результаты.
Если элементы расположены не по порядку, то игрок продолжает перестановку.Пользователь может выйти из игры, нажав клавишу Esc. Для удобства предусмотрен выход из программы посредством меню. Для этого приходится сохранять видео страничку в буфере. Если пользователь подтверждает желание выйти, буфер очищается и потом игрок попадает в главное меню. В ином случае видео страница извлекается из буфера, а затем происходит его очистка. Тем самым пользователь застрахован от случайного нажатия клавиши Esc.
Вывод таблицы рекордов
Прежде всего, осуществляется считывание результатов из файла.
После этого следует процедура очистки экрана. Затем происходит создание фона, на котором будут выводиться данные из файла. Распечатка осуществляется без выхода из графического режима, благодаря чему таблица получается красочной и приятной для восприятия. В текстовом режиме создать такой эффект невозможно. Имя игрока и его результат разделяются точками. Имя игрока, имеющего лучший результат, выделяется другим цветом.
В принципе это основные действия, которые необходимо выполнить для того, что бы пользователь мог ознакомиться с лучшими результатами. В остальном все зависит от вкусов программиста и чаще всего состоит в непосредственной записи выполняемых действий с помощью операторов и стандартных процедур выбранного языка программирования.
Вывод помощи
Вывод помощи в игре, так же как и таблицы рекордов, осуществляется посредством считывания из файла. Пожалуй, единственное и главное различие состоит в том, что здесь все действия производятся в текстовом режиме.
Перед тем, как осуществлять печать данных из файла, происходит выход из графического режима и очистка экрана. Затем
данные распечатываются блоками по 24 строки. Каждый раз проверяется условие, закончен ли файл и не нажал ли игрок Esc.После каждого блока пользователь должен подтвердить продолжение вывода помощи, нажав клавишу Enter, либо прервать вывод, нажав клавишу Esc. И в первом и во втором случае игрок попадает в меню программы <15>.
Графический интерфейс программы <15>
Сочетание подобранных цветов приятно для восприятия. При небольшом наборе цветов в палитре, отсутствуют те, что имеют ‘кислотные’ оттенки. Данный факт кому-то может показаться не столь значимым, но очевидно то, что желание пользователя работать с той или иной программой, будь то игровая (или какая другая программа), зачастую определяется не только сюжетом, жанром, смыслом самой игры, но и тем интерфейсом, который предлагают пользователю автор (или авторы) программы.
Разработка программы
Программа состоит из двух файлов. Первый файл petnash.pas-это файл, содержащий основную программу. Второй файл petnash1.pas-это модуль, в котором находятся процедуры используемые, основной программой.
Текст основной программы
program petnash;
uses
crt,graph,
petnash1;{Модуль,содержащий основные подпрограммы}
Var
grDriver,grMode,ErrCode,men:integer;
Begin(*petnash*)
{Инициализация графического режима}
grDriver:=Detect;
InitGraph(grDriver, grMode,'');