Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пояснительная записка Шевцов 08-ВС.doc
Скачиваний:
5
Добавлен:
09.12.2018
Размер:
1.52 Mб
Скачать
    1. Математическое описание

      1. Функциональная структура

Приложение должно предоставлять гостю выбор, к какому серверу подключиться, какое имя будет у сервера/клиента, когда начнётся игра. Алгоритм работы следующий:

1.Старт работы сервера

2.Старт работы клиента(-ов)

3.Выбор подключения к игре либо создание своей.

4.Выбор имени.

5.Ожидание игроков и старт игры

      1. Алгоритмическое обеспечение

Описание алгоритма работы программы выглядит следующим образом. При запуске приложения (а именно клиента) можно будет выбрать, кем будет являться таковой: создающим игру либо подключающимся. Создатель игры указывает своё имя (имя игры) и оно отображается на сервере. Затем у него же появляется диалоговое окно со списком клиентов, в котором отображаются имена клиентов, подключившихся к этой игре. Создатель игры может начать игру в любой момент по нажатию кнопки “Start”, либо отменить игру и отключить всех подключившихся именно к этой игре пользователей по нажатию кнопки “Cancel”. После нажатия кнопки “Start” диалоговое окно со списком пользователей будет автоматически закрыто и появится игровое поле.

На стороне клиентов ситуация следующая. При входе клиент указывает своё имя. Затем он может выбрать список игр, которые ожидают старта, после чего появится диалоговое окно с именем игры и кнопкой “Cancel”, нажатие на которую отменит ожидание и вход в игру. Как только на клиенте, который создал игру, будет нажата кнопка “Start” данное окно автоматически закроется и появится игровое поле. Тот, кто первый откроет поле получит сообщение о победе. Остальные клиенты получат сообщение о проигрыше в игре, а также имя победителя.

  1. Программная реализация

    1. Детальная реализация функциональных частей программного обеспечения

      1. Реализация программного обеспечения

Реализация шла на языке программирования C++ в среде Microsoft Visual Studio 2010. Использовались только стандартные функции и библиотеки. Структура классов находится в приложении Г.

Структура приведена только для классов, реализованных на сервере т.к. на клиенте потребовалось реализовать всего один класс, который, по сути, является формой. В таблице 1 приведено описание классов сервера.

Таблица 1.Описание классов.

Элемент массива игр.

ref class game

{

public:

game(System::String^ name);

System::String^ host;

System::String^ winner;

bool visible;

bool hostReady;

array<System::String^>^ Users;

void Add(System::String^ name);

void Delete(System::String^ name);

int Count;

};

Массив игр. Удаление, элементов,их количество.

ref class GameList

{

public:

GameList(int k);

void Add(System::String^ name);

void Delete(System::String^ name);

array<game^>^ Items;

int Count;

};

Элемент массива пользователей.

ref class Record

{

public:

Record(void);

Record(System::String^ username, System::String^ name);

System::String^ username;

System::String^ name;};

Продолжение таблицы 1.

Класс описания пользователя. Используется для обращения к конкретному пользователю. Элемент массива пользователей

ref class User

{

public:

User(System::String^ nam, SOCKET sok);

System::String^ name;

SOCKET sock;

};

Массив пользователей

ref class UserList

{

public:

UserList(int k);

void Add(System::String^ name, SOCKET sok);

void Delete(System::String^ name);

SOCKET GetSock(System::String^ name);

array<User^>^ Items;

int Count;

};