{"id":17246918,"url":"https://github.com/i-redbyte/sea-battle","last_synced_at":"2025-03-26T05:25:53.479Z","repository":{"id":228061406,"uuid":"352777364","full_name":"i-redbyte/sea-battle","owner":"i-redbyte","description":"Concept: Simple online console \"Sea Battle\" game","archived":false,"fork":false,"pushed_at":"2024-03-28T17:39:38.000Z","size":57,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-31T07:15:13.259Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/i-redbyte.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2021-03-29T20:34:15.000Z","updated_at":"2024-03-21T10:07:14.000Z","dependencies_parsed_at":"2024-03-22T17:13:26.453Z","dependency_job_id":null,"html_url":"https://github.com/i-redbyte/sea-battle","commit_stats":null,"previous_names":["i-redbyte/sea-battle"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i-redbyte%2Fsea-battle","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i-redbyte%2Fsea-battle/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i-redbyte%2Fsea-battle/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i-redbyte%2Fsea-battle/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/i-redbyte","download_url":"https://codeload.github.com/i-redbyte/sea-battle/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245594094,"owners_count":20641192,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-15T06:35:28.430Z","updated_at":"2025-03-26T05:25:53.458Z","avatar_url":"https://github.com/i-redbyte.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Морской бой\n\n## Общее описание\n\nИгра \"Морской бой\" - это консольная версия классической настольной игры. В игре участвуют два игрока: человек и компьютер. Цель игры - уничтожить все корабли\nпротивника, первым находя их на игровом поле.\n\n## Правила игры\n\n- Игровое поле представляет собой сетку размером 10x10.\n- Каждый игрок имеет флот, состоящий из:\n    - 1 четырехпалубного корабля,\n    - 2 трехпалубных кораблей,\n    - 3 двухпалубных кораблей,\n    - 4 однопалубных кораблей.\n- Игроки по очереди атакуют поля друг друга, пытаясь уничтожить все корабли противника.\n\n## Компьютерный игрок\n\nКомпьютерный игрок использует простую стратегию для расстановки своих кораблей и для выстрелов по полю игрока. Расстановка кораблей производится случайным\nобразом, с учетом правил игры. Выбор координат для атаки также основывается на алгоритме случайного выбора, с дополнением, что компьютер стремится атаковать\nсоседние клетки при попадании, чтобы эффективнее уничтожать корабли.\n\n**В дальнйешем планиурется усложнение логики компьютерного игрока.**\n\n## Сборка и запуск\n\nДля сборки и запуска игры потребуется компилятор C++, поддерживающий стандарт C++20 или выше.\n\n### Windows\n\n1. Установите компилятор, например, [MinGW](http://mingw-w64.org/) или используйте Visual Studio.\n2. Скомпилируйте файлы исходного кода:\n   ```\n   g++ -o SeaBattle main.cpp AIPlayer.cpp HumanPlayer.cpp Board.cpp Ship.cpp -std=c++20\n   ```\n3. Запустите игру:\n   ```\n   SeaBattle.exe\n   ```\n\n### macOS и Linux\n\n1. Убедитесь, что на вашем компьютере установлен компилятор `g++` или `clang++`.\n2. Скомпилируйте файлы исходного кода:\n   ```\n   g++ -o SeaBattle main.cpp AIPlayer.cpp HumanPlayer.cpp Board.cpp Ship.cpp -std=c++20\n   ```\n3. Запустите игру:\n   ```\n   ./SeaBattle\n   ```\n\n### Сборка через CMake\n\nДля сборки проекта с помощью CMake, выполните следующие шаги:\n\n1. Перейдите в директорию проекта и создайте директорию сборки `build`:\n   например используя терминал:\n   ```\n   mkdir build \u0026\u0026 cd build\n   ```\n2. Запустите CMake для генерации файлов сборки и соберите проект:\n   ```\n   cmake ..\n   cmake --build .\n   ```\n3. Запустите игру:\n    - На Windows:\n      ```\n      SeaBattle.exe\n      ```\n    - На Linux и macOS:\n      ```\n      ./SeaBattle\n      ```\n      \n## Управление\n\n- Введите координаты (X Y) и ориентацию (h - горизонтально, v - вертикально) для расстановки своих кораблей.\n- Для атаки введите координаты (X Y) целевой клетки на поле противника.\n\n---\n\n```\n          -----------------------\n          ~ With love for C++ ~\n          -----------------------\n                    ()\n                    ||q',,'\n                    ||d,~\n         (,---------------------,)\n          ',       q888p       ,'\n            \\       986       /\n             \\  8p, d8b ,q8  /\n              ) 888a888a888 (\n             /  8b` q8p `d8  \\              O\n            /       689       \\             |','\n           /       d888b       \\      (,---------,)\n         ,'_____________________',     \\   ,8,   /\n         (`__________L|_________`)      ) a888a (    _,_\n         [___________|___________]     /___`8`___\\   }*{\n           }:::|:::::}::|::::::{      (,=========,)  -=-\n            '|::::}::|:::::{:|'  .,.    \\:::|:::/    ~`~=\n             '|}:::::|::{:::|'          ~\".,.\"~`~\n               '|:}::|::::|'~`~\".,.\"\n           ~`~\".,.\"~`~\".,                 \"~`~\".,.\"~\n                          \".,.\"~`~\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fi-redbyte%2Fsea-battle","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fi-redbyte%2Fsea-battle","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fi-redbyte%2Fsea-battle/lists"}