Разработка игровой программы Морской бой
Категория реферата: Рефераты по информатике, программированию
Теги реферата: bestreferat, изложение 7 класс
Добавил(а) на сайт: Занин.
Предыдущая страница реферата | 1 2 3 4 5 6 7 8 9 10 11 | Следующая страница реферата
И, в этом же цикле проверяется условие истинности переменной t. Если
переменная t=True (блок 17), то происходит пропуск некоторых ячеек (блок
18), и установка ячеек корабля (значение ячейки равно 2) циклически (блоки
19 и 20). После этого опять происходит пропуск некоторых ячеек (значение их
равно 1) (блок 21). На этом цикл завершается (блок 14), и проверяется
следующее значение выражения random(2). Если это выражение равно единице
(блок 22), то происходит установка корабля по вертикали. Все выполняемые
действия этой ветки алгоритма аналогичны вышеописанным, с применением
циклов по переменной Y (блоки 23 - 31).
После выполнения этих действий проверяется условие окончания цикла
«До» (блок 32), и завершаются два вложенных цикла по переменным I и J
(блоки 9 и 10).
Далее, происходит визуальная расстановка кораблей на игровом поле
человека. Для этого организуются два вложенных цикла по переменным I и J со
значениями от 1 до 10 (блоки 33 и 34). В циклах проверяется условие
заполнения ячейки поля клеткой корабля m[1].a[i,j]=2 (блок 35), и если это
логическое выражение истинно, то переменной r присваивается название файла, содержащего картинку корабля (блок 37), иначе – пустую картинку (блок 36).
Далее, с помощью двух процедур Case1 происходит прорисовка ячеек на игровом
поле (блоки 38 и 39).
Последние действия в этой процедуре – вывод на панель строки состояния значений количества выстрелов и попаданий (блок 40), а также происходит присваивание переменным следующих значений: tm1:=Time и new:=True.
Процедура Case1, про которую было сказано выше, выполняет следующие действия (Приложение 2): при обращении к определенной ячейки игрового поля человека или компьютера происходит прорисовка ячейки специальной картинкой, в зависимости от значения переменной r. В процедуре происходит множественный выбор, по номеру ячейки, и выполняется действие загрузки растрового файла в компонент TSpeedButton (блоки 2 - 401).
После того, как все корабли были расставлены на игровом поле, программа ожидает срабатывания нескольких событий:
. щелчка левой клавишей манипулятора мышь по ячейки игрового поля компьютера;
. выбора из пункта «Игра» главного меню подпункта «Выход»;
. выбора из пункта «Помощь» главного меню подпункта «О программе»;
. выбора из пункта «Помощь» главного меню подпункта «Правила игры»
При описанном первым событии происходит обращение к процедуре
SpeedButton101Click (Приложение 3). В теле процедуры сразу проверяется
переменная t1. Если t1 не равна значению True (блок 2), то процедура
завершает свою работу, иначе происходит присвоение переменной S имени
объекта игрового поля, по которому производится щелчок, из имени объекта
удаляется подстрока «SpeedButton», оставшийся номер объекта преобразуется в
число (блок 3). После этого проверяется условие, делится ли это число на 10
с остатком (блок 4). Если это так, то переменной J присваивается значение I-
90 (блок 6), иначе J=I-100 (блок 5). Далее, проверяется делимость числа J
на 10 без остатка (блок 7). Если это условие выполняется, то переменной U
присваивается значение 10 (блок 9), иначе вычисляется остаток от деления
переменной J на 10 (блок 8). Полученное значение переменной U проверяется с
использованием многовариантного выбора, и в соответствии со значением
переменной S присваивается одна из букв русского алфавита, от А до К (блоки
10 - 29). Потом проверяется условие, был ли щелчок на данной ячейке (блок
30), если щелчка не было, то осуществляется переход на положительную ветку
алгоритма, в которой, во-первых, осуществляется вывод в ячейку картинки, показывающей сделанный ход (блок 31), во-вторых, происходит вывод над
игровым полем человека кода произведенного хода (блок 32), и в-третьих, переменной t1 присваивается значение False, и кнопки подтверждения / отмены
хода становятся доступными (блок 33). На этом процедура завершает свою
работу (блок 34).
При подтверждении сделанного хода, т.е. при щелчке на кнопке OK, происходит вызов процедуры BitBtn1Click (Приложение 4), которая производит так называемый выстрел, и в соответствии с этим, отмечает необходимые ячейки игровых полей.
После вызова процедуры происходит приращение переменной KL на единицу
(блок 2), и проверяется ячейка игрового поля (блок 3). Если в ячейке есть
клетка корабля, то выводится соответствующая картинка с помощью процедуры
Case1 (блок 4), уменьшается счетчик количества клеток кораблей, и
соответствующая клетка помечается как использованная (значение равно 3)
(блок 5). Далее, происходит проверка количества «живых» клеток кораблей.
Если это количество равно нулю (блок 6), то выводится сообщение «Победа!»
(блок 7), переменным P и t1 присваивается значение False, кнопки
подтверждения / отмены хода становятся неактивными (блок 8), и процедура
завершает свою работу (блок 19).
Если количество «живых» клеток кораблей не равно нулю (блок 6), то выводится сообщение «Попал!» (блок 9), и переменной P присваивается логическое значение False (блок 10). При этом происходит объединение этой ветки алгоритма с веткой «Нет» блока условия 3 (пустая клетка), в которой выводится сообщение «Промах» (блок 11), соответствующая ячейка заполняется необходимым изображением с помощью процедуры Case1 (блок 12), ячейка помечается, как использованная (значение равно 3), и переменной P присваивается логическое значение True (блок 13).
Далее, переменной t1 присваивается логическое значение True, вычисляется результативность S (блок 14). На панель 2 строки состояния
выводятся значения количества выстрелов, количества попаданий и
результативность игрока (блок 15), кнопки подтверждения / отмены хода
становятся неактивными (блок 16), и проверяется значение переменной p (блок
17). Если это значение равно True, то происходит вызов процедуры Komp (блок
18), которая производит ход компьютера.
Процедура Komp (Приложение 5) начинается с двух вложенных циклов типа
«До», в которых вычисляются координаты выстрела случайным образом (блок 2).
После этого проверяется условие завершения внутреннего цикла (блок 3).
Далее происходит многовариантная проверка координаты по вертикали В1 от 1
до 10, в результате которой переменной S присваивается определенное
значение, лежащее в промежутке от А до К (блоки 4 - 23).
Выводится код хода компьютера над игровым полем (блок 24), и соответствующим образом заполняется ячейка игрового поля, переменной PK присваивается необходимое логическое значение (блоки 25 - 29).
Далее, происходит приращение количества выстрелов, вычисляется
результативность (S) (блок 30), и на панель 0 строки состояния выводятся
значения количества выстрелов, количества попаданий, и результативность
(блок 31).
Потом, проверяется условие завершения внешнего цикла «До» (блок 32), и если условие выполняется, то процедура заканчивает свою работу (блок 33).
При отмене сделанного пользователем хода, т.е. при щелчке на кнопку
NO, происходит вызов процедуры BitBtn2Click (Приложение 6). В этой
процедуре очищается ячейка игрового поля с помощью процедуры Case1 (блок
2), переменной t1 присваивается логическое значение True, и кнопки
подтверждения / отмены хода становятся неактивными (блок 3).
В этом же приложении приведена процедура Timer1Timer (Приложение 6), которая основана на невизуальном компоненте Timer, и рассчитывает время игры. Здесь, если выполняется условие new=True (блок 2), то на панель 1 строки состояния выводится значение времени игры (блок 3).
Все процедуры находится в модуле Unit1, текст которого приведен в приложении 7.
2.2.2. Реализация справочной информации
Справочная информация (правила игры) реализована с помощью программы
Help Development Studio. Эта программа позволяет создать файл справочной
информации для Windows, используя текст формата Rich Edit Text. В процессе
работы этой программы создается файл проекта справки *.hmp, который
впоследствии может быть откомпилирован в файл справки (*.hlp).
В данной курсовой работе был создан файл проекта справки morboy.hmp, который был откомпилирован с помощью программы Help Development Studio,
Microsoft Help WorkShop, входящей в состав Borland Delphi 6.0, и
компилятора HcRtf.exe в файл morboy.hlp (рис.6).
Рекомендуем скачать другие рефераты по теме: оформление доклада, курсовая работа по управлению.
Предыдущая страница реферата | 1 2 3 4 5 6 7 8 9 10 11 | Следующая страница реферата