Разбор расстановок

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

Посчитать самому

Как выпадет —
По краям —
По углам —
В центре —
Вразброс —

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

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

СтратегияЧто это
Как выпадетСлучайная расстановка с соблюдением правил: корабли не касаются друг друга.
По краямПриоритет местам у края поля. При неудаче используется обычная случайная расстановка.
По угламПриоритет местам ближе к углам. При неудаче используется обычная случайная расстановка.
В центреПриоритет местам ближе к центру. При неудаче используется обычная случайная расстановка.
ВразбросИз предложенных случайных допустимых мест выбираются наиболее удалённые от уже стоящих кораблей. При неудаче используется обычная случайная расстановка.

Как читать результат

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

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

Почему у края другой вес

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

Алгоритм считает именно это: складывает, сколько раз каждая клетка оказалась накрыта хотя бы одним допустимым положением уцелевших кораблей. На пустом поле центр получает больший вес из-за многопалубных кораблей. После выстрелов карта меняется. Для однопалубного эффект края этим счётом не объясняется: обе ориентации одной клетки дают вес 2 и в углу, и в центре.

Где совет перестаёт работать

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

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

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

Стратегия — это способ выбирать место. Для каждого корабля код пробует до 40 случайных положений и выбирает лучшее из допустимых по своей мерке: у «краёв» это близость к борту, у «вразброс» — расстояние до соседей. Это выбор из пробы, а не поиск глобального оптимума. Если собрать флот не удаётся, используется обычная случайная расстановка.

Дальше флот отдают алгоритму, и он топит его до последней клетки. Никакой магии и никаких заранее записанных ответов: тот же код, что играет с вами на странице игры. Число выстрелов здесь является метрикой конкретного алгоритма, а не теоретическим оптимумом.

Вопросы про разбор

Что именно считает этот разбор?

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

Почему при каждом пересчёте цифры немного разные?

Выборка зависит от случайной расстановки и выбора среди равных ходов. Средние и порядок стратегий могут меняться. Увеличение числа партий не превращает результат в гарантию для любой расстановки.

Это работает против живого человека?

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

Считается на вашем сервере?

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