Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Функциональное описание приложенияПрежде чем приступить к реализации приложения, необходимо четко определить назначение каждого компонента и выбрать метод реализации каждой его функции. Функциональные аспекты компонентов проектируемого приложения удобно представлять в виде диаграмм вариантов использования UML (UML — Unified Modeling Language — Унифицированный язык моделирования). Составим сначала текстовые описания компонентов приложения "Игра в доминирование", а затем на их основе создадим диаграммы вариантов использования UML. Краткое описание работы сервера В начале игры сервер выдает каждому игроку набор фишек определенного цвета и количества. Далее сервер работает по тактам. За один такт сервер проверяет наличие заявки на обслуживание от очередного игрока и, если она есть, выполняет ее и возвращает ответ клиенту. Краткое описание работы клиента Игрок подключается к серверу игры. Если подключение выполнено успешно, игрок получает свои фишки и сообщение о том, что все игроки подключены и игра началась. После этого в любой момент времени игрок может сделать ход, т. е. послать серверу заявку на захват определенной клетки игрового поля (в соответствии с заданной конфигурацией доминирования). В ответ игрок может получить от сервера подтверждение хода или отказ. Кроме этого, в любой момент времени игрок может пожелать просмотреть текущее состояние игрового поля. И наконец, в любой момент времени игрок может выйти из игры. Завершение игры Игра заканчивается, когда выполняются условия окончания игры. Это может быть истечение заданного промежутка времени, отсутствие незанятых клеток на игровом поле, невозможность сделать ни одного допустимого хода или что-нибудь другое. В нашей реализации игра будет заканчиваться при выполнении хотя бы одного из четырех условий:
После завершения игры подводятся ее итоги и по количеству набранных очков определяется победитель. Результаты игры рассылаются всем подключенным игрокам. Сервер "Игры в доминирование" По описанию работы сервера игры в доминирование можно составить следующий список его интерфейсных форм и функций, сгруппированных в модули:
Работу сервера удобно реализовать в виде конечного автомата, который может находиться в одном из перечисленных состояний и переходить из одного состояния в другое после выполнения необходимых действий или в результате возникновения определенного события.
Основная процедура серверной части игры в доминирование — это процедура обработки события Таймер (Timer) формы "Сервер", представляющая собой конечный автомат, состояниями которого являются этапы игры. Вызов этой процедуры соответствует такту работы сервера, он происходит периодически, через определенный промежуток времени, заданный в окне свойств формы "Сервер" в качестве значения параметра Интервал таймера (Timer Interval) (число миллисекунд). В каждом из состояний сервер вызывает соответствующую состоянию функцию из модуля "Ядро игры" для выполнения определенных действий. Сервер может находиться в одном из состояний, определяющих функцию, которая будет выполнена сервером за очередной такт. Например, в состоянии "игра начата" сервер проверяет наличие заявки от одного из игроков и, если она есть, выполняет ее. Заявки игроков можно разделить на две категории: сделать ход и выйти из игры. Результатом обработки заявки игрока является выполнение сервером необходимых действий и посылка игроку сообщения о результате этих действий. По данному описанию сервера создана диаграмма вариантов использования, представленная на рис. П 2.5. Рис. П 2.5. Диаграмма вариантов использования для сервера "Игры в доминирование" Клиент "Игры в доминирование" Клиентская часть приложения "Игры в доминирование" значительно проще серверной части. По описанию работы клиента "Игры в доминирование" можно составить следующий список его интерфейсных форм и функций, сгруппированных в модули:
Основная процедура клиентской части "Игры в доминирование" — это процедура обработки события Таймер (Timer) формы "Клиент", которая необходима для реализации обратной связи сервера с клиентом. Поскольку данный пример не предназначен для иллюстрации взаимодействия приложений с помощью OLE Automation, обратная связь сервера с клиентом осуществляется со стороны клиента и реализована в виде вызываемой периодически процедуры проверки наличия адресованных игроку сообщений. Клиент может находиться в одном из состояний, определяющих действия, которые будут выполнены клиентом в ответ на очередное событие таймера. Например, в состоянии "игра начата" клиентом производится прием сообщений от сервера. Сообщения от сервера делятся на две категории: информационные и управляющие. Управляющие сообщения, в отличие от информационных, не отображаются на экране, а приводят к изменению состояния клиента или выполнению клиентом определенных действий. Рис. П2.6. Диаграмма вариантов использования для клиента "Игры в доминирование" Взаимодействие клиента с сервером осуществляется методом посылки" серверу заявки. Заявкой игрока может быть ход (координаты клетки) или заявка на выход из игры.
|