Readme file + update in maze.hpp
This commit is contained in:
31
README.md
Normal file
31
README.md
Normal file
@@ -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`.
|
||||||
@@ -26,9 +26,10 @@ public:
|
|||||||
bool test_mode;
|
bool test_mode;
|
||||||
|
|
||||||
Maze(bool flag, int steps);
|
Maze(bool flag, int steps);
|
||||||
|
|
||||||
int get_moves_left() const;
|
int get_moves_left() const;
|
||||||
bool is_wall(int node, int direction) const;
|
|
||||||
|
|
||||||
void set_moves_left(int _steps);
|
void set_moves_left(int _steps);
|
||||||
|
|
||||||
|
bool is_wall(int node, int direction) const;
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user