Правила и тактика морского боя

На сайте используется поле 10×10 и флот из десяти кораблей без касания, включая диагонали. Ниже правила этой версии и объяснение поиска по плотности. Проверить расстановку против нашего алгоритма можно в отдельном разборе.

Правила

Поле и флот

Поле десять на десять, столбцы подписаны буквами А, Б, В, Г, Д, Е, Ж, З, И и К, строки цифрами. Флот из десяти кораблей.

КорабльКлетокСколько
Четырёхпалубный41
Трёхпалубный32
Двухпалубный23
Однопалубный14

Двадцать клеток из ста заняты. Корабли ставятся только по прямой и не касаются друг друга даже углами: между любыми двумя обязательна пустая клетка.

Ход

Управление на сайте

Нажмите Tab, чтобы выбрать поле. Стрелками перемещайтесь между клетками; Enter или пробел подтверждает выбор. На своём поле при ручной расстановке ставится корабль, на поле противника во время боя выполняется выстрел. R поворачивает следующий корабль, когда выбрано своё поле при расстановке.

Что карта плотности говорит о расстановке

На пустом поле через разные клетки проходит разное число допустимых положений многопалубного корабля. Это можно проверить прямо по алгоритму, не делая вывод о результате всей партии.

Длина корабляУголЦентр
4 клетки28
1 клетка22

В таблице указаны вклады в карте нашего кода для одного корабля на пустом поле. Для однопалубного обе ориентации совпадают, поэтому код дважды считает одно физическое положение в любой клетке. Промахи и попадания меняют карту; эти числа не означают вероятность победы и не задают среднюю длину партии.

Проверить на своей выборке можно в разборе расстановок: там считается прямо в браузере, и число партий вы выбираете сами.

Что учитывать при выборе расстановки

  1. Однопалубные требуют отдельного поиска. Сетка, рассчитанная на крупный корабль, может их пропустить. Это не доказывает преимущество угла.
  2. Соблюдайте промежутки. Корабли не должны соприкасаться. Направление подбитого многопалубного выясняется проверкой соседних клеток.
  3. Не оставляйте пустой весь угол поля. Опытный соперник замечает, что вы туда не ставите, и перестаёт тратить туда выстрелы.

Как искать чужой флот

Для кораблей длиной не меньше двух можно проверять клетки в шахматном порядке: любой прямой корабль такой длины пересекает оба цвета. Однопалубный может оказаться на пропущенном цвете, поэтому позже потребуется проверять оставшиеся клетки. Порядок нахождения кораблей сетка не гарантирует.

После попадания проверяйте соседей по горизонтали и вертикали, а не по диагонали: диагональ по правилам пуста. Найдя направление, добивайте до конца, а потом сразу обводите потопленный корабль точками — эти клетки больше не нужно проверять.

И считайте, что осталось. Когда у соперника уцелели только однопалубные, шаг сетки уменьшается до единицы и стрелять по краям приходится всё равно.

Попробовать прямо здесь

Ваш ход
Ваш флот: ▪▪▪▪×1 ▪▪▪×2 ▪▪×3 ▪×4 Флот противника: ▪▪▪▪×1 ▪▪▪×2 ▪▪×3 ▪×4 Меткость: 0% / 0% Счёт: 0 : 0

Ваше море

Море противника

Нажмите на клетку правого поля. Попали — стреляете ещё раз.

На поле стрелки выбирают клетку, Enter или пробел подтверждают действие. При расстановке R поворачивает корабль. До поля можно перейти клавишей Tab.

    Вопросы по правилам

    Сколько кораблей в классическом флоте?

    Десять: один четырёхпалубный, два трёхпалубных, три двухпалубных и четыре однопалубных. Всего двадцать клеток из ста, то есть пятая часть поля.

    Можно ли ставить корабли углом к углу?

    По русским правилам нет: между кораблями должна быть хотя бы одна пустая клетка, включая диагонали. Именно поэтому вокруг потопленного корабля можно смело ставить точки.

    Кто ходит после попадания?

    Тот же игрок. Ход переходит к сопернику только после промаха. Корабль считается потопленным, когда поражены все его клетки.

    Правда ли, что ставить по краям выгоднее?

    Наш алгоритм на пустом поле даёт краям меньший вес при поиске многопалубных кораблей. Это свойство его карты плотности, а не универсальная гарантия. Результат всей партии зависит от расстановки и последующих попаданий.

    Есть ли смысл прятать однопалубные по углам?

    Одной плотностью это преимущество не обосновать. Для длины 1 код учитывает горизонтальный и вертикальный вариант одной клетки: получается 2 и в углу, и в центре пустого поля. Физически это одно положение. Итог зависит от остальных кораблей и порядка поиска.