Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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
- Host: GitHub
- URL: https://github.com/i-redbyte/sea-battle
- Owner: i-redbyte
- License: mit
- Created: 2021-03-29T20:34:15.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2024-03-28T17:39:38.000Z (10 months ago)
- Last Synced: 2024-10-16T06:35:28.634Z (3 months ago)
- Language: C++
- Homepage:
- Size: 55.7 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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`___\ }*{
}:::|:::::}::|::::::{ (,=========,) -=-
'|::::}::|:::::{:|' .,. \:::|:::/ ~`~=
'|}:::::|::{:::|' ~".,."~`~
'|:}::|::::|'~`~".,."
~`~".,."~`~"., "~`~".,."~
".,."~`~
```