https://github.com/helleb0re/seabattle
The Seabattle game was written in C++ with Boost.Asio (TCP protocol)
https://github.com/helleb0re/seabattle
boost-asio cpp seabattle seabattle-game tcp tcp-client-server
Last synced: 6 days ago
JSON representation
The Seabattle game was written in C++ with Boost.Asio (TCP protocol)
- Host: GitHub
- URL: https://github.com/helleb0re/seabattle
- Owner: helleb0re
- Created: 2023-08-07T11:40:31.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2023-08-22T20:36:32.000Z (almost 3 years ago)
- Last Synced: 2025-02-24T16:52:47.816Z (over 1 year ago)
- Topics: boost-asio, cpp, seabattle, seabattle-game, tcp, tcp-client-server
- Language: C++
- Homepage:
- Size: 5.13 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# **Морской бой**
Консольная игра «Морской бой» написанная на языке C++ с использованием Boost.Asio (TCP server/client) и рассчитанная на двоих игроков.
## **Правила игры**
Каждый игрок на поле 8х8 располагает 10 кораблей:
* 1 четырёхпалубный (занимающий 4 клетки),
* 2 трёхпалубных,
* 3 двухпалубных,
* 4 однопалубных.
В данной программе расположение кораблей определяется случайным образом. Для этого необходимо указать [сид](https://en.wikipedia.org/wiki/Random_seed) как параметр командной строки при запуске программы.
Игроки делают выстрелы, не видя расположение кораблей соперника. При промахе ход передаётся другому игроку. При попадании даётся право ещё одного выстрела. Соперник сообщает результат выстрела — «мимо», «попал», «убил». Последний статус означает, что поражены все клетки, занимаемые кораблём.
## **Использование**
Параметры запуска для сервера:
```
seabattle random_seed port
```
Параметры запуска для клиента:
```
seabattle random_seed ip_address port
```
## **Демонстрация**

## **Зависимости**
1. [С++20](https://en.cppreference.com/w/cpp/20)
2. [Boost](https://www.boost.org/users/history/version_1_78_0.html) 1.78+ version requires
3. [GCC](https://gcc.gnu.org/) 11+ version requires
4. [CMake](https://cmake.org) 3.11 version requires
5. [Conan](https://conan.io/) 1.* version requires