Сервер "Игры в доминирование"
Сервер "Игры в доминирование"
По описанию работы сервера игры в доминирование можно составить следующий список его интерфейсных форм и функций, сгруппированных в модули:
-
"Ядро игры" — модуль VBA, отвечающий за выполнение основных функций сервера на всех этапах игры (назовем их состояниями игры). К этим этапам относятся:
-
инициализация игры (создание игрового поля);
-
ожидание подключения игроков, начало игры (назначение цвета игроку, выдача фишек и посылка стартового сообщения);
-
игра начата (обработка заявки игрока — попытка принять ход игрока, изменение текущего состояния игрового поля, отключение игрока);
-
окончание игры (проверка условий окончания игры, подведение итогов с рассылкой результатов игрокам).
-
инициализация игры (создание игрового поля);
-
"Сервер" — форма, обеспечивающая интерфейс ведущего игры. Ведущему предоставляется возможность начать или прервать игру, установить конфигурацию игры, просмотреть текущее состояние игрового поля и закрыть приложение.
-
"Конфигурация" — форма, обеспечивающая создание, сохранение, выбор и установку конфигурации игры в доминирование (смежность клеток с весом), а также установку числа подключаемых игроков, количества фишек и размера игрового поля.
-
"Обмен данными" — модуль VBA, отвечающий за посылку сообщений игрокам.
-
"Игровое поле" — модуль VBA, отвечающий за изображение текущего состояния игрового поля в виде страницы доступа к данным.
-
"Адресация клеток" — модуль VBA, отвечающий за выполнение преобразования номера столбца и строки в адрес клетки игрового поля. Адресация клеток на игровом поле реализована подобно адресации клеток на рабочем листе Excel. Для идентификации столбца используются одна или две латинские заглавные буквы от А до Z в лексикографическом порядке, а для идентификации строки — номер: целое число, начиная с единицы.
-
"Параметры" — модуль VBA, содержащий функции чтения/записи параметров игры.
Сервер может находиться в одном из состояний, определяющих функцию, которая будет выполнена сервером за очередной такт. Например, в состоянии "игра начата" сервер проверяет наличие заявки от одного из игроков и, если она есть, выполняет ее. Заявки игроков можно разделить на две категории: сделать ход и выйти из игры. Результатом обработки заявки игрока является выполнение сервером необходимых действий и посылка игроку сообщения о результате этих действий.
По данному описанию сервера создана диаграмма вариантов использования, представленная на рис. П 2.5.
Иллюстрация П 2.5. Диаграмма вариантов использования для сервера "Игры в доминирование"