Морской бой

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

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

Ваше море

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

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

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

    Как устроен противник

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

    Алгоритм простой на словах и полезный на деле. Способ известен под названием probability density: берём каждый уцелевший корабль, перебираем все места, куда его ещё можно поставить с учётом известных промахов, и складываем, сколько раз каждая клетка оказалась накрыта. Бить надо в самую густую.

    Отсюда же берётся его поведение после попадания. Варианты, объясняющие уже известные раны, считаются с большим весом, поэтому карта сама подсвечивает продолжение корабля, и отдельного режима «добивания» писать не пришлось.

    Что можно проверить

    СвойствоКак устроено здесь
    Информация для поискаИзвестные попадания, промахи и длины уцелевших кораблей
    Выбор клеткиМаксимальный вес; при равенстве выбор случайный
    Сравнение расстановокСреднее число выстрелов на выбранной пользователем выборке

    Результат выборки не является математическим пределом. В анализе Nick Berry используется другой флот: пять кораблей на 17 клетках с допустимым касанием. Его численные результаты нельзя переносить на наши десять кораблей без касания.

    Что можно настроить

    Ставить корабли вплотную игра не даст: подсветка станет красной. Это не придирка, а правило: иначе обводка потопленного корабля теряет смысл.

    Без мыши

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

    После «Расставить самому» и «Повернуть» выбрано своё поле. После «Новая партия» или «Ещё партия» выбрано поле противника. При обычном открытии страницы перейти к полю можно клавишей Tab.

    Чего в игре нет

    Над игровым полем нет рекламы и покупок. Игровой скрипт сохраняет счёт побед и поражений в браузере; технические данные загрузки страницы описаны в политике конфиденциальности. Сетевого соперника нет: играть можно только против машины.

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

    Вопросы про игру

    Нужно ли что-то скачивать или регистрироваться?

    Нет. Игра целиком написана на JavaScript и рисуется на холсте прямо в браузере. Ни установки, ни аккаунта, ни почты.

    По каким правилам идёт партия?

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

    Почему вокруг убитого корабля сами появляются точки?

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

    Насколько силён противник?

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

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

    Да, кнопка «Расставить самому». Нажмите на своё поле либо выберите клетку стрелками и подтвердите Enter или пробелом. Кнопка «Повернуть» или R на своём поле меняет направление. Поставить корабль вплотную к соседу нельзя.

    Как играть с клавиатуры?

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

    Сохраняется ли счёт?

    Сохраняется только число побед и поражений, если браузер разрешает хранение данных сайта. Сама партия не сохраняется: после перезагрузки начинается новая. Очистка данных сайта удаляет счёт.