Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Функциональное описание приложения





Прежде чем приступить к реализации приложения, необходимо четко определить назначение каждого компонента и выбрать метод реализации каждой его функции. Функциональные аспекты компонентов проектируемого приложения удобно представлять в виде диаграмм вариантов использования UML (UML — Unified Modeling Language — Унифицированный язык моделирования). Составим сначала текстовые описания компонентов приложения "Игра в доминирование", а затем на их основе создадим диаграммы вариантов использования UML.

Краткое описание работы сервера

В начале игры сервер выдает каждому игроку набор фишек определенного цвета и количества. Далее сервер работает по тактам. За один такт сервер проверяет наличие заявки на обслуживание от очередного игрока и, если она есть, выполняет ее и возвращает ответ клиенту.

Краткое описание работы клиента

Игрок подключается к серверу игры. Если подключение выполнено успешно, игрок получает свои фишки и сообщение о том, что все игроки подключены и игра началась. После этого в любой момент времени игрок может сделать ход, т. е. послать серверу заявку на захват определенной клетки игрового поля (в соответствии с заданной конфигурацией доминирования). В ответ игрок может получить от сервера подтверждение хода или отказ. Кроме этого, в любой момент времени игрок может пожелать просмотреть текущее состояние игрового поля. И наконец, в любой момент времени игрок может выйти из игры.

Завершение игры

Игра заканчивается, когда выполняются условия окончания игры. Это может быть истечение заданного промежутка времени, отсутствие незанятых клеток на игровом поле, невозможность сделать ни одного допустимого хода или что-нибудь другое. В нашей реализации игра будет заканчиваться при выполнении хотя бы одного из четырех условий:

  • каждый игрок использовал все свои фишки;
  • администратор завершил работу сервера игры;
  • все игроки вышли из игры;
  • истекло время, отведенное на игру.

После завершения игры подводятся ее итоги и по количеству набранных очков определяется победитель. Результаты игры рассылаются всем подключенным игрокам.

Сервер "Игры в доминирование"

По описанию работы сервера игры в доминирование можно составить следующий список его интерфейсных форм и функций, сгруппированных в модули:

  • "Ядро игры" — модуль VBA, отвечающий за выполнение основных функций сервера на всех этапах игры (назовем их состояниями игры). К этим этапам относятся:
    • инициализация игры (создание игрового поля);
    • ожидание подключения игроков, начало игры (назначение цвета игроку, выдача фишек и посылка стартового сообщения);
    • игра начата (обработка заявки игрока — попытка принять ход игрока, изменение текущего состояния игрового поля, отключение игрока);
    • окончание игры (проверка условий окончания игры, подведение итогов с рассылкой результатов игрокам).

Работу сервера удобно реализовать в виде конечного автомата, который может находиться в одном из перечисленных состояний и переходить из одного состояния в другое после выполнения необходимых действий или в результате возникновения определенного события.

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

Основная процедура серверной части игры в доминирование — это процедура обработки события Таймер (Timer) формы "Сервер", представляющая собой конечный автомат, состояниями которого являются этапы игры. Вызов этой процедуры соответствует такту работы сервера, он происходит периодически, через определенный промежуток времени, заданный в окне свойств формы "Сервер" в качестве значения параметра Интервал таймера (Timer Interval) (число миллисекунд). В каждом из состояний сервер вызывает соответствующую состоянию функцию из модуля "Ядро игры" для выполнения определенных действий.

Сервер может находиться в одном из состояний, определяющих функцию, которая будет выполнена сервером за очередной такт. Например, в состоянии "игра начата" сервер проверяет наличие заявки от одного из игроков и, если она есть, выполняет ее. Заявки игроков можно разделить на две категории: сделать ход и выйти из игры. Результатом обработки заявки игрока является выполнение сервером необходимых действий и посылка игроку сообщения о результате этих действий.

По данному описанию сервера создана диаграмма вариантов использования, представленная на рис. П 2.5.

Рис. П 2.5. Диаграмма вариантов использования для сервера "Игры в доминирование"

Клиент "Игры в доминирование"

Клиентская часть приложения "Игры в доминирование" значительно проще серверной части. По описанию работы клиента "Игры в доминирование" можно составить следующий список его интерфейсных форм и функций, сгруппированных в модули:

  • "Ядро клиента" — модуль VBA, отвечающий за выполнение основных функций клиента на всех этапах игры. Из всех функций в данный модуль вошла лишь функция подключения к серверу. Остальные функции распределены по другим модулям в соответствии с их назначением.
  • "Клиент" — форма, обеспечивающая интерфейс игрока. Игроку предоставляется возможность подключиться к серверу игры, сделать ход, просмотреть текущее состояние игрового поля и выйти из игры.
  • "Подключиться к игре" — форма, обеспечивающая интерфейс подключения к серверу.
  • "Сделать ход" — форма, обеспечивающая интерфейс, позволяющий игроку сделать очередной ход.
  • "Обмен данными" — модуль VBA, отвечающий за обмен данными с сервером (за отображение сообщений сервера, адресованных игроку, и посылку заявки на обработку серверу).
  • "Игровое поле" — форма, содержащая гиперссылку на страницу с изображением игрового поля.
  • "Параметры" — модуль VBA, содержащий функции чтения/записи параметров клиента.

Основная процедура клиентской части "Игры в доминирование" — это процедура обработки события Таймер (Timer) формы "Клиент", которая необходима для реализации обратной связи сервера с клиентом. Поскольку данный пример не предназначен для иллюстрации взаимодействия приложений с помощью OLE Automation, обратная связь сервера с клиентом осуществляется со стороны клиента и реализована в виде вызываемой периодически процедуры проверки наличия адресованных игроку сообщений. Клиент может находиться в одном из состояний, определяющих действия, которые будут выполнены клиентом в ответ на очередное событие таймера. Например, в состоянии "игра начата" клиентом производится прием сообщений от сервера.

Сообщения от сервера делятся на две категории: информационные и управляющие. Управляющие сообщения, в отличие от информационных, не отображаются на экране, а приводят к изменению состояния клиента или выполнению клиентом определенных действий.

Рис. П2.6. Диаграмма вариантов использования для клиента "Игры в доминирование"

Взаимодействие клиента с сервером осуществляется методом посылки" серверу заявки. Заявкой игрока может быть ход (координаты клетки) или заявка на выход из игры.

Date: 2015-09-17; view: 914; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию