Multithread maze server description (without UML)
Fix link in README file
This commit is contained in:
@@ -6,10 +6,14 @@ UML-диаграмма протокола пользовательского у
|
||||

|
||||
|
||||
## Описание работы приложения
|
||||
Сервер maze-server ожидает подключения клиентов по протоколу TCP на заданный порт (по умолчанию 1024).
|
||||
После установки соединения сервер ожидает получения имени игрока от клиента и запускает игровую сессию.
|
||||
Каждому игроку предоставляется ограниченное количество ходов для прохождения случайного лабиринта. Игрок может перемещаться в четырёх направлениях: вперёд, назад, направо, налево. Сервер проверяет возможность перемещения и сообщает игроку о результате действия.
|
||||
Игрок побеждает, если достигает конечной позиции (нода 8) за отведённое число шагов. В противном случае он проигрывает.
|
||||
Сервер `maze-server` ожидает подключения клиентов по протоколу TCP на заданный порт (по умолчанию 1024). После установления соединения сервер запрашивает имя игрока, а затем начинает игру в лабиринте. Лабиринт генерируется случайным образом при старте каждой новой игровой сессии. Гарантируется наличие хотя бы одного пути из начальной точки `(0, 0)` в конечную точку `(2, 2)`. Добавление дополнительных стен происходит с соблюдением условия достижимости цели.
|
||||
|
||||
Cхема и нумерация клеток лабиринта представлена на рисунке ниже.
|
||||
|
||||

|
||||
|
||||
Клиент отправляет команды движения ("вперёд", "направо", "налево", "назад") или команду "сдаюсь" для завершения игры. Сервер обрабатывает команды, проверяет возможность хода, обновляет состояние лабиринта и отправляет клиенту текстовый ответ с результатом хода, количеством оставшихся ходов и текущей позицией (в формате координат). Игра завершается, если игрок достигает конечной точки (позиция 8), исчерпывает ходы или сдаётся.
|
||||
|
||||
|
||||
### Запуск сервера
|
||||
Приложение сервера при запуске принимает следующие необязательные ключи:
|
||||
@@ -37,8 +41,10 @@ UML-диаграмма протокола пользовательского у
|
||||
Если игрок исчерпал все ходы, но не дошёл до финиша, он считается проигравшим. Финиш находится в позиции (2, 2) (координаты x, y).
|
||||
|
||||
### Запуск клиента
|
||||
Приложение клиента при запуске принимает три необязательных ключа `-h`, `-p` и `-n` с параметрами.
|
||||
Ключи `-h` и `-p` задают сетевой адрес (название хоста и номер порта соответственно) сервера для подключения.
|
||||
Приложение клиента при запуске принимает два необязательных ключа:
|
||||
- `-h` — задаёт имя хоста сервера для подключения;
|
||||
|
||||
- `-p` — задаёт номер порта сервера.
|
||||
```bash
|
||||
./maze_client -h localhost -p 1024
|
||||
```
|
||||
|
||||
4
doc/numeration_maze.svg
Normal file
4
doc/numeration_maze.svg
Normal file
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 29 KiB |
Reference in New Issue
Block a user