Над дизайном не заморачивался: писал для себя - интересно было поиграть на поле произвольного размера.
- позволяет выбирать, кто начинает бой - игрок или компьютер;
- позволяет задать произвольный размер игрового поля (от 5х5 до 30х30) и произвольное количество и тип кораблей (последнее в интерфейсе не отражено, но программно реализовано);
- перед началом игры программа предлагает игроку произвольное расположение кораблей игрока на поле;
- позволяет игроку передислоцировать корабли по собственному усмотрению;
- перед началом игры проверяет количество и тип кораблей игрока и корректность их расположения на игровом поле, не позволяет начать игру при нарушении правил;
- "интеллектуальное" ведение боя компьютером - в первую очередь стремится добить раненные корабли, учитывает склонность игрока к расположению кораблей горизонтальным или вертикальным образом (исходя из расположения уже подбитых кораблей);
- при успешном попадании в корабль автоматически отмечаются как "проверенные" клетки, в которых по правилам игры не могут находиться другие корабли (например, по диагонали от клетки с раненным кораблем);
- ведется протокол игры.
Реализация: VB .NET
2008 г.