Морской бой

Может кто-то встречал подобный проект, который можно взять за основу и реализовать?

Правила игры «Морской бой»

- Имеется 2 равных по размеру поля NxM. Размер поля может быть произвольным.

- На обоих полях расставляются корабли. Игрок видит поле со своими кораблями, второе остается пустым, на нем будут наносится удары по кораблям соперника. Все корабли расставляются программой.

- Поля нумируется сверху вниз, а вертикали помечаются буквами слева направо.

- Всего расставляется 10 кораблей:

1) 1 корабль – ряд из 4х клеток;

2) 2 корабля – ряд из 3х клеток;

3) 3 корабля – ряд из 2х клеток;

4) 4 корабля – 1 клетка.

При размещении корабли должны располагаться только по горизонтали или вертикали и не могут касаться друг друга сторонами и углами.

- Кораблей может быть два типа – обычные и подводные лодки. У подводной лодки над водой видна только рубка (одна клетка). Сразу подбить можно только рубку, остальную часть подводной лодки можно подбить только при повторном попадании.

- Игроки стреляют по очереди, выбирая клетку. При попадании в корабль противника — на чужом поле ставится крестик, при холостом выстреле — точка. Попавший стреляет ещё раз.

- Цель – первым потопить все корабли противника.

- Минимальные требования к интеллекту компьютерного игрока: выстрел осуществляется вероятностным способом в тех клетках, где возможно нахождение кораблей противника. Если корабль обнаружен, то должна использоваться стратегия «потопления» корабля;