Функциональное описание приложения
Прежде чем приступить к реализации приложения, необходимо четко определить назначение каждого компонента и выбрать метод реализации каждой его функции. Функциональные аспекты компонентов проектируемого приложения удобно представлять в виде диаграмм вариантов использования UML (UML – Unified Modeling Language – Унифицированный язык моделирования). Составим сначала текстовые описания компонентов приложения "Игра в доминирование", а затем на их основе создадим диаграммы вариантов использования UML.
Краткое описание работы сервера
В начале игры сервер выдает каждому игроку набор фишек определенного цвета и количества. Далее сервер работает по тактам. За один такт сервер проверяет наличие заявки на обслуживание от очередного игрока и, если она есть, выполняет ее и возвращает ответ клиенту.
Краткое описание работы клиента
Игрок подключается к серверу игры. Если подключение выполнено успешно, игрок получает свои фишки и сообщение о том, что все игроки подключены и игра началась. После этого в любой момент времени игрок может сделать ход, т. е. послать серверу заявку на захват определенной клетки игрового поля (в соответствии с заданной конфигурацией доминирования). В ответ игрок может получить от сервера подтверждение хода или отказ. Кроме этого, в любой момент времени игрок может пожелать просмотреть текущее состояние игрового поля. И наконец, в любой момент времени игрок может выйти из игры.
Завершение игры
Игра заканчивается, когда выполняются условия окончания игры. Это может быть истечение заданного промежутка времени, отсутствие незанятых клеток на игровом поле, невозможность сделать ни одного допустимого хода или что-нибудь другое. В нашей реализации игра будет заканчиваться при выполнении хотя бы одного из четырех условий:
- каждый игрок использовал все свои фишки;
- администратор завершил работу сервера игры;
- все игроки вышли из игры;
- истекло время, отведенное на игру.
После завершения игры подводятся ее итоги и по количеству набранных очков определяется победитель. Результаты игры рассылаются всем подключенным игрокам.