diff --git a/doc/maze.png b/doc/maze.png deleted file mode 100644 index a36ad1a..0000000 Binary files a/doc/maze.png and /dev/null differ diff --git a/doc/maze.svg b/doc/maze.svg new file mode 100644 index 0000000..dc72353 --- /dev/null +++ b/doc/maze.svg @@ -0,0 +1,25 @@ +MazeClientMazeClientMazeServerMazeServerУстановка соединения (TCP, порт 1024)Подтверждение соединенияОтправка имени игрокаПодтверждение имениloop[Игровой цикл]Отправка командыПроверка командыОтправка ответаalt[Команда "сдаюсь" или конец игры]Закрытие соединенияПодтверждение закрытия \ No newline at end of file diff --git a/doc/multithread_maze_server.md b/doc/multithread_maze_server.md index 9cb4543..7658866 100644 --- a/doc/multithread_maze_server.md +++ b/doc/multithread_maze_server.md @@ -3,7 +3,7 @@ ## Протокол пользовательского уровня UML-диаграмма протокола пользовательского уровня представлена на рисунке ниже. -![UML-диаграмма протокола пользовательского уровня](maze.png) +![UML-диаграмма протокола пользовательского уровня](maze.svg) ## Описание работы приложения Сервер `MazeServer` ожидает подключения клиентов по протоколу TCP на заданный порт (по умолчанию 1024). После установления соединения сервер запрашивает имя игрока, а затем начинает игру в лабиринте. Лабиринт генерируется случайным образом при старте каждой новой игровой сессии. Гарантируется наличие хотя бы одного пути из начальной точки `(0, 0)` в конечную точку `(2, 2)`. Добавление дополнительных стен происходит с соблюдением условия достижимости цели. diff --git a/src/server/maze.cpp b/src/server/maze.cpp index c2a31a6..4af97b2 100644 --- a/src/server/maze.cpp +++ b/src/server/maze.cpp @@ -7,7 +7,8 @@ Maze::Maze(bool _test_mode, int _steps){ // Инициализация графа лабиринта и его ребер - std::vector edges = { + // Индексы направлений: 0 - север, 1 - восток, 2 - юг, 3 - запад + std::vector edges = { {0, 1, 1, 3}, {0, 0, 3, 2}, {1, 1, 2, 3}, {1, 0, 4, 2}, {2, 0, 5, 2}, {3, 1, 4, 3}, {3, 0, 6, 2}, {4, 1, 5, 3}, {4, 0, 7, 2}, {5, 0, 8, 2}, {6, 1, 7, 3}, {7, 1, 8, 3}