Оптимальный алгоритм игры в морской бой

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

Леггинсы из эко-кожи идеально сочетаются с любым однотонным верхом
10 часов назад
Внимание, акция! Женский деловой костюм всего за 790 рублей
9 часов назад

Правила игры

Вариантов морского боя много, но мы рассмотрим самый распространенный вариант со следующим набором кораблей:

Все перечисленные корабли должны быть размещены на квадратном поле 10 х 10, причем корабли не могут касаться ни углов, ни сторон. Само игровое поле пронумеровано сверху вниз, а вертикали обозначены русскими буквами от «А» до «К» (буквы «Ё» и «Ы» пропущены).

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

Оптимальная стратегия

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

В следующем объяснении будут использоваться следующие обозначения:

Оптимальная стрельба

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

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

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

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

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

Для начала рассмотрим участок игрового поля размером 4 х 4 клетки. Если в рассматриваемом районе находится линкор противника, он гарантированно будет подбит не более чем за 4 выстрела. Для этого нужно снимать так, чтобы на каждой горизонтали и вертикали была отмечена ровно одна ячейка, внизу все варианты такой съемки (кроме отражений и поворотов).

Газпромбанк предлагает лучшую кредитную карту. Успей оформить на выгодных условиях
10 часов назад
Как работает уникальный пояс для похудения и коррекции фигуры?
10 часов назад

Среди всех этих вариантов оптимальны только первые два варианта на поле 10 х 10 клеток, гарантирующие попадание в линкор максимум с 24 выстрелов.

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

Если при поиске линкора вы использовали вторую стратегию, то для поиска крейсеров и эсминцев необходимо вести огонь по следующим полям (зеленым отмечены поля, по которым вы уже стреляли при поиске линкора):

Оптимальной стратегии поиска лодок не существует, поэтому в конце игры приходится полагаться в основном на удачу.

Оптимальное размещение кораблей

Оптимальная стратегия размещения кораблей в чем-то противоположна оптимальной стратегии ведения огня. При съемке мы старались найти самые большие корабли, чтобы уменьшить количество ячеек, которые необходимо проверить, за счет гарантированно свободных ячеек. Это означает, что при расстановке кораблей их нужно размещать таким образом, чтобы количество гарантированно свободных ячеек было минимальным в случае проигрыша. Как вы помните, линкор в середине поля открывает врагу сразу 14 клеток, а вот стоящий в углу линкор открывает противнику только 6 клеток:

Точно так же крейсер, стоящий в углу, открывает только 6 полей вместо 12. Размещая большие корабли вдоль границы поля, вы, таким образом, освобождаете место для лодок. Потому что нет стратегии по поиску лодок, врагу приходится стрелять наугад, и чем больше свободного поля у вас останется при захвате лодок, тем сложнее противнику будет победить.

Ниже приведены три способа размещения капитальных кораблей, которые предоставляют много места для лодок (отмечены синим цветом):

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

При таком расположении для лодок остается всего 21 ячейка, а значит, вероятность попадания в лодку уже равна 0,19, т.е почти в 3 раза выше.

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

Источник https://habrastorage.org/

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

Читайте также