Skip to content

Sea Battle game for practical work on SkillFactory course

Notifications You must be signed in to change notification settings

ZhArtem/SF-SeaBattleGame

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

SF-SeaBattleGame

Sea Battle game for practical work on SkillFactory OOP course


Суть написанного приложения — игра «Морской бой».

  • Интерфейс приложения представляет из себя консольное окно с двумя полями 6х6.
  • Игрок играет с компьютером. Компьютер делает ходы наугад, но не ходит по тем клеткам, в которые он уже сходил.
  • Для представления корабля описан класс Ship с конструктором принимающим в себя набор точек (координат) на игровой доске.
  • Описан класс доски. Доска принимает в конструкторе набор кораблей.
  • Корабли должны находится на расстоянии минимум одна клетка друг от друга.
  • На каждой доске (у ИИ и у игрока) находится следующее количество кораблей: 1 корабль на 3 клетки, 2 корабля на 2 клетки, 4 корабля на одну клетку.
  • Игрок не может стрелять в одну и ту же клетку несколько раз. При ошибках хода игрока возникает исключение.
  • В случае, если возникают непредвиденные ситуации, выбрасыватся и обрабатыватся исключения.
  • Буквой X помечаются подбитые корабли, . — промахи.
  • Побеждает тот, кто быстрее всех разгромит корабли противника.

В дополнение к основному заданию реализовано следующее:

  • вывод двух досок рядом по горизонтали.
  • в случае успешного поподания, следующими ходами ИИ "добивает" корабль противника.
  • для симуляции игры с реальным противником реализована "мыслительная работа" ИИ путем задержки хода.

SeaBattleGame