Подробная схема работы системы представлена в приложении Б.
2.2 Описание работы программы
Программа содержит семь модулей:
– main содержит в себе главную форму, на которой расположены все визуальные элементы программы, и вызов всех остальных модулей программы;
– game содержит в себе процедуры, связанные с обработкой игрового процесса;
– drawсодержит в себе процедуры, отображающие игровой процесс на экране при помощи визуальных элементов главной формы;
– saveсодержит в себе форму, предоставляющую пользователю возможность сохранить результаты игры;
– loadсодержит в себе форму, предоставляющую пользователю список всех ранее сохраненных игр;
– help содержит форму, которая отображает HTML-документ, содержащий правила игры;
– about содержит форму, которая отображает информацию о программе и разработчиках;
– exitсодержит форму, запрашивающую подтверждение на выход из программы.
Таблица 2.1 – Модули программы
Наименование модуля | Функциональное назначение | Компоненты взаимодействия | ||
вызывающие | вызываемые | |||
main.pas | Модуль главной формы | - | game.pas, load.pas, save.pas, help.pas, about.pas | |
game.pas | Модуль игровых рассчетов | main.pas | draw.pas | |
draw.pas | Модуль отображения игрового процесса на главной форме | game.pas, load.pas | - | |
Наименование модуля | Функциональное назначение | Компоненты взаимодействия | ||
вызывающие | вызываемые | |||
save.pas | Модуль сохранения данных | main.pas | - | |
load.pas | Модуль загрузки данных | main.pas | draw.pas | |
help.pas | Модуль справки | main.pas | - | |
about.pas | Модуль информации о программе и разработчике | |||
exit.pas | Модуль подтверждения выхода | main.pas |
2.3 Инструкция по выполнению программы
При запуске программы отображается главная форма, на которой доступны семь кнопок: «НОВАЯ ИГРА» , «ЗАГРУЗИТЬ», «СОХРАНИТЬ», «ОТМЕНИТЬ ХОД», «О ПРОГРАММЕ», «СПРАВКА» и «ВЫХОД» (рисунок 1).
Рисунок 1 – Главная форма.
При нажатии на кнопку «НОВАЯ ИГРА» программа автоматически случайным образом определяет, какой игрок будет ходить первым, и предлагает ему «бросить » кубики. При нажатии на кнопку «ЗАГРУЗИТЬ» программа считывает из папки saves корневого каталога программы все сохраненные игры и предоставляет список пользователю на новой форме (рисунок 2). После выбора нужной игры и нажатия на кнопку «ЗАГРУЗИТЬ» программы загружает сохраненные данные и предлагает продолжить игру.
Рисунок 2- Форма загрузки игры
Чтобы «бросить кубики» игроку необходимо навести указатель мыши на картинку в правом верхнем углу главной формы (рисунок 3) и нажать левую кнопку мыши. Произойдет случайная генерация двух чисел в диапозоне от одного до шести, которые являются предоставленными ходами. После генерации ходов производится проверка возможности их совершить, если из предоставленных ходов невозможно совершить ни один, происходит смена игрока. Доступные ходы отображены на главной форме (рисунок 3). В соответствии с правилами, игрок не имеет права завершить свой ход, пока существует возможность его продолжить. Игроки совершают ходы по очереди до завершения игры.
Рисунок 3 – Генерация ходов.
Если игра завершилась победой одного из игроков, то отображается соответствующее сообщение (рисунок 4).
Рисунок 4 – Сообщение о победе.
Во время игры существует возможность отменить свой ход до полного его завершения при помощи кнопки «ОТМЕНИТЬ ХОД». Нажатие этой кнопки ведет к восстановлению всех данных в их состояние на момент «броска» кубиков.
Также во время игры можно сохранить все данные нажатием на кнопу «СОХРАНИТЬ ИГРУ». При нажатии на эту кнопку активируется новая форма, предлагающая игроку ввести имя новой сохраняемой игры (рисунок 5). После ввода имени и нажатии на кнопку «СОХРАНИТЬ» программа сохраняет данные в папку saves в корневом каталоге программы.
Рисунок 5 – Форма сохранения игры.
Выйти из программы можно в любое время нажатием на кнопку «ВЫХОД».
При нажатии на кнопку «СПРАВКА» активируется форма с расположенным на ней вэб-браузером, в котором отображаются правила игры (рисунок 6).
Рисунок 6 – Форма «СПРАВКА».
При нажатии на кнопку «О ПРОГРАММЕ» активируется форма, на которой отображается информация о разработчиках и о программе (рисунок 7).
Рисунок 7 – Форма «О ПРОГРОАММЕ»
Существует три основных типа ошибок, которые могут явиться причиной прекращения выполнения программы или неверного результата:
– синтаксические ошибки;
– ошибки выполнения;
– логические ошибки.
Синтаксические ошибки обнаруживаются при компиляции или запуске программы.
Большинство синтаксических ошибок легко обнаруживается и устраняется.
Ошибки выполнения являются наиболее распространенным типом ошибок. Однако данный тип ошибок достаточно легко обнаруживается и устраняется с помощью отладчика.
К логическим ошибкам можно отнести ситуации, в которых программа выполняется, но приводит к непредсказуемым или неправильным результатам. Причины, которые могут привести к логической ошибке, могут быть самыми разнообразными, например, неверный алгоритм построения программы, некорректное использование управляющих структур и т.д. Данный тип ошибок наиболее трудно обнаружить.
Таблица 2.2 – Ошибки при разработке программы.
Ошибка | Тип ошибки | Метод устранения | |
Out of range | логическая | Добавлены дополнительные условия, сокращен диапазон выполнения цикла. | |
Некорректоне определение присутствия игрока в «доме» | Логическая | Добавлено новое условие | |
Ошибка | Тип ошибки | Метод устранения | |
Cant find file | выполнения | Прописан новый путь к файлам | |
Access violation filed | логическая | Добавлено новое исключение в алгоритм | |
Возможность совершить бесконечное количество ходов | логическая | Введена автоматическая смена игрока перед генерацией нового хода | |
Невозможность победы | логическая | Отключение процедуры проверки возможности хода при условии, что игрок «пришел в «дом» | |
Некорректные результаты процедуры проверки возможных, ходов при первом ходе | логическая | Добавлено дополнительное условие, изменен алгоритм проверки | |
Неккоректные результаты процедуры отображения игрового процесса | логическая | Добавлена конструкция begin…end; | |
Совпадение имен массива и процедуры | логическая | Исправлено имя процедуры | |
Обнуление основных переменных при отмене хода сразу после загрузки ранее сохраненной игры | логическая | Добавлено заполнение резервных переменных | |
Некорректное действие при нажатии кнопки «НОВАЯ ИГРА» | логическая | Добавлено занесение начальных данных в основные переменные |
В качестве контрольного примера рассмотрим игру между двумя игроками: «Игрок 1» и «Игрок 2».
При нажатии на кнопку «НАЧАТЬ ИГРУ» выводится сообщение «Начинающий игрок определен случайным образом, бросьте зары» (рисунок 8).
Рисунок 8 – Сообщение о начале игры.
Один из игроков нажимает на кубики, выводится сообщение: «Ходят белые». Превый игрок начинает свой ход. Доступные ходы – три и два. «Игрок 1» перемещает фишку на три, а затем на две клетки вперед (рисунок 9).
Рисунок 9 – Первый ход «Игрока 1».
«Игрок 2» нажимает на кубики, вывдится сообщение: «Ходят черные». «Игрок 2» совершает свой ход, «Игрок 1» нажимает на кубики. Спустя несколько ходов Игроку 1 доступно четыре хода по пять ячеек, он совершает три хода и нажимает на кубики. Программа выдает сообщение об ошибке: «Ход не завершен!» (Рисунок 10).
Рисунок 10 – Ход не завершен.
Спустя еще несколько ходов «Игроку 2» «выпадает» на кубиках шесть и три, но ход «три» недоступен, «Игрок 2» совершает ход «шесть» и передает ход «Игроку 1». Игрок один нажимает на кубики, «выпадает» один и четыре, но ни один из этих ходов не доступен. Выводится сообщение: «Вы не можете походиться» (рисунок 11). Ход переходит к «Игроку 2».
Рисунок 11 – Невозможность совершить ход.
Игроки совершили по 15 ходов, вид игрового поля перед сохранением изображен на рисунке 12.
Рисунок 12 – Игровой процесс перед сохранением.
Сохраняем игру под имеем «Игра1», выходим из игры. После этого загружаем «Игра1» и проверяем правильность загруженных данных. Вид игрового поля после загрузки изображен на рисунке 13. Все данные загружены верно, игроки продолжают партию.
Рисунок 13 – Игровой процесс после загрузки.
а1няем игру под имеем "гв, вид игрового поля изображен на рисункеимает на кубики. 2.
«Игрок 2» побеждает в партии, выводится сообщение: «Игра окончена, победили черные» (Рисунок 14).