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