Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/i-redbyte/sea-battle

Concept: Simple online console "Sea Battle" game
https://github.com/i-redbyte/sea-battle

Last synced: about 1 month ago
JSON representation

Concept: Simple online console "Sea Battle" game

Awesome Lists containing this project

README

        

# Морской бой

## Общее описание

Игра "Морской бой" - это консольная версия классической настольной игры. В игре участвуют два игрока: человек и компьютер. Цель игры - уничтожить все корабли
противника, первым находя их на игровом поле.

## Правила игры

- Игровое поле представляет собой сетку размером 10x10.
- Каждый игрок имеет флот, состоящий из:
- 1 четырехпалубного корабля,
- 2 трехпалубных кораблей,
- 3 двухпалубных кораблей,
- 4 однопалубных кораблей.
- Игроки по очереди атакуют поля друг друга, пытаясь уничтожить все корабли противника.

## Компьютерный игрок

Компьютерный игрок использует простую стратегию для расстановки своих кораблей и для выстрелов по полю игрока. Расстановка кораблей производится случайным
образом, с учетом правил игры. Выбор координат для атаки также основывается на алгоритме случайного выбора, с дополнением, что компьютер стремится атаковать
соседние клетки при попадании, чтобы эффективнее уничтожать корабли.

**В дальнйешем планиурется усложнение логики компьютерного игрока.**

## Сборка и запуск

Для сборки и запуска игры потребуется компилятор C++, поддерживающий стандарт C++20 или выше.

### Windows

1. Установите компилятор, например, [MinGW](http://mingw-w64.org/) или используйте Visual Studio.
2. Скомпилируйте файлы исходного кода:
```
g++ -o SeaBattle main.cpp AIPlayer.cpp HumanPlayer.cpp Board.cpp Ship.cpp -std=c++20
```
3. Запустите игру:
```
SeaBattle.exe
```

### macOS и Linux

1. Убедитесь, что на вашем компьютере установлен компилятор `g++` или `clang++`.
2. Скомпилируйте файлы исходного кода:
```
g++ -o SeaBattle main.cpp AIPlayer.cpp HumanPlayer.cpp Board.cpp Ship.cpp -std=c++20
```
3. Запустите игру:
```
./SeaBattle
```

### Сборка через CMake

Для сборки проекта с помощью CMake, выполните следующие шаги:

1. Перейдите в директорию проекта и создайте директорию сборки `build`:
например используя терминал:
```
mkdir build && cd build
```
2. Запустите CMake для генерации файлов сборки и соберите проект:
```
cmake ..
cmake --build .
```
3. Запустите игру:
- На Windows:
```
SeaBattle.exe
```
- На Linux и macOS:
```
./SeaBattle
```

## Управление

- Введите координаты (X Y) и ориентацию (h - горизонтально, v - вертикально) для расстановки своих кораблей.
- Для атаки введите координаты (X Y) целевой клетки на поле противника.

---

```
-----------------------
~ With love for C++ ~
-----------------------
()
||q',,'
||d,~
(,---------------------,)
', q888p ,'
\ 986 /
\ 8p, d8b ,q8 /
) 888a888a888 (
/ 8b` q8p `d8 \ O
/ 689 \ |','
/ d888b \ (,---------,)
,'_____________________', \ ,8, /
(`__________L|_________`) ) a888a ( _,_
[___________|___________] /___`8`___\ }*{
}:::|:::::}::|::::::{ (,=========,) -=-
'|::::}::|:::::{:|' .,. \:::|:::/ ~`~=
'|}:::::|::{:::|' ~".,."~`~
'|:}::|::::|'~`~".,."
~`~".,."~`~"., "~`~".,."~
".,."~`~
```