From 78f03cbfb51483445c7a6966eb705e3e749b9a7e Mon Sep 17 00:00:00 2001 From: ParkSuMin Date: Wed, 30 Apr 2025 19:58:11 +0300 Subject: [PATCH] Readme file + update in maze.hpp --- README.md | 31 +++++++++++++++++++++++++++++++ include/maze.hpp | 5 +++-- 2 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..ba91b9d --- /dev/null +++ b/README.md @@ -0,0 +1,31 @@ +# Реализация сетевого приложения "Лабиринт" + +## Задание +Разработать приложение, реализующее игру «Лабиринт» с компьютерным противником. Игра заключается в отыскании выхода из лабиринта человеком-игроком за заданное число ходов. Программа-клиент инициирует начало игры, отправляя программе-серверу имя игрока. Сервер генерирует случайным образом несколько стен в «лабиринте» размером 3 на 3 клетки. Игрок стартует в левой нижней клетке, его задача — дойти до противоположного угла поля за заданное число ходов-перемещений. Игрок может отправлять сообщения вида «вперёд», «направо», «налево», «назад», «сдаюсь». Сервер принимает сообщения игрока, проверяет их и на каждое сообщение присылает ответ («успешно», «там стена, осталось Y ходов», «вы проиграли», «вы выиграли»,). После завершения игры сетевое соединение завершается. В сетевом протоколе прикладного уровня следует предусмотреть режим тестирования производительности без ограничений на число ходов игрока. + +Для игрока необходимо реализовать консольный интерфейс, обеспечивающий удобный (минимально необходимый) ввод с визуализацией хода игры: выполненные ходы и ответы компьютера на них, число ходов, сообщение о победе или проигрыше. + +Для приложения необходимо разработать сетевой протокол прикладного уровня на основе TCP. + +Приложение-сервер должно поддерживать одновременную работу с неограниченным числом игроков (в пределах вычислительных возможностей компьютера). Сервер необходимо реализовать как многопоточное приложение с использованием сокетов в блокирующем режиме. + +Клиент должен работать по разработанному сетевому протоколу. + +## Разработанное приложение +Реализация [сервера на основе многопоточности](doc/multiprocess_echo_server.md) и клиента эхо-приложения. + +## Требования +Для сборки и запуска необходима Unix-система и компилятор C++ с поддержкой стандарта c++23. + +Необязательно: +- CMake + +## Сборка и запуск +Для сборки при помощи CMake необходимо выполнить следующие команды в корневой папке проекта: +```bash +mkdir build +cd build +cmake .. +make +``` +Собранные таким способом приложения сервера и клиента будут находиться в папке `build`. diff --git a/include/maze.hpp b/include/maze.hpp index 2c21bd9..45d3891 100644 --- a/include/maze.hpp +++ b/include/maze.hpp @@ -26,9 +26,10 @@ public: bool test_mode; Maze(bool flag, int steps); + int get_moves_left() const; - bool is_wall(int node, int direction) const; - void set_moves_left(int _steps); + + bool is_wall(int node, int direction) const; }; #endif