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

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

Money Amulet - Талисман приносящий удачу за 147 руб
7 часов назад
Keto Genetic капсулы для похудения Бесплатно NEW
7 часов назад

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

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

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

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

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

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

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

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

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

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

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

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

Красота волос не зависит от генетики! Расскажем, как определять тип волос и какие средства для ухода подойдут именно тебе!
7 часов назад
Money Amulet - Талисман приносящий удачу за 147 руб
10 часов назад

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

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

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

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

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

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

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

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

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

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

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

Money Amulet - Талисман приносящий удачу за 147 руб
8 часов назад
Редумин средство для похудения Бесплатно
8 часов назад

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