От крестиков-ноликов до гомоку

в 16:19, , рубрики: гомоку, игры, крестики-нолики, логические игры, метки:

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

image

Многие знают родственную для гомоку игру – крестики-нолики 5 в ряд, где нужно построить ряд из 5 своих знаков для победы. Но в гомоку есть одно главное отличие: ряд из 6 и более своих знаков не приносит победы.

Правила игры

Игра ведется на доске 15х15 пунктов. Игру начинает черный цвет. Игроки каждым своим ходом по очереди выставляют один камень своего цвета в свободный пункт доски. Цель игры – построение непрерывного ряда ровно из 5 своих камней по горизонтали, по вертикали или в диагональном направлении. При этом, непрерывный ряд из 6 и более камней одного цвета не запрещен, но и победой не является. Такой ряд называется длинным рядом.

Основные понятия

Ряд – последовательность из 5 пунктов.
Чтобы выиграть, нужно заполнить хотя бы один ряд своими камнями, получив тем самым пятерку. Если в одном ряду содержатся камни обоих игроков, то такой ряд ни при каких условиях не сможет превратиться в пятерку. Такие ряды будем называть ничейными.

Смежный пункт. У каждого ряда может быть от 0 до 2 смежных пунктов (рис. 1) – это пункты непосредственно примыкающие к ряду с обоих концов (если пункты в ряду пронумеровать от 1 до 5, то смежные пункты будут 0 и 6). Если в смежном пункте ряда содержится камень какого-либо игрока, то такой ряд ни при каких условиях не сможет стать пятеркой этого игрока (он сможет стать лишь 6-кой). Таким образом, если в ряду содержатся камни только одного игрока, будем считать, что такой ряд принадлежит этому игроку.

Длиной ряда будем называть количество камней в нем.

image

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

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

  • Четверка – ряд с четырьмя камнями одного цвета.
  • Тройка – ряд с тремя камнями одного цвета.
  • Двойка – ряд с двумя камнями одного цвета.

В любом ряду с длиной n камней есть ровно 5-n пустых пунктов.

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

image

На 15 горизонтали стоит черный длинный ряд, на 14 горизонтали белая четверка с пустым пунктом e14 (зеленая точка). А вот на 13 горизонтали у белых нет четверки, всё из-за камня на f13, который является смежным для ряда с возможной четверкой. На 9 горизонтали у белых сразу две четверки. Прямоугольниками разного цвета обведены разные тройки, а синими точками обозначены пустые пункты в этих тройках. На 2 горизонтали вообще нет ни одной тройки.

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

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

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

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

Двойная тройка – это пустой пункт, через который проходят две или более троек одного игрока.
Ход в свою двойную тройку создает сразу две разные четверки.

image

На рисунке изображены разные черные двойные тройки. Черным достаточно сходить в пункты A, B, C или D, чтобы создать одним ходом сразу две своих четверки.
На 6-й горизонтали находится особая структура – это открытая тройка.

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

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

Но как получить двойную тройку?

Форсированный выигрыш

Самым эффективным средством достижения победы является выигрыш серией четверок. Когда игрок ходит только четверками. При этом его соперника можно вообще не принимать во внимание, потому что он будет вынужден делать свой ход в один определенный пункт – прикрытие четверки. Назовем такую победу форсированный выигрыш или выигрыш серией четверок VCF (Victory by Continuous Fours). VCF не всегда есть в текущей позиции, но если он есть, будем называть началом VCF текущую позицию, а окончанием – позицию, в которой выставлена двойная тройка.

image

В позиции на рисунке есть VCF черных, состоящий из одного хода в пункт (1), при этом будет создана горизонтальная открытая тройка. Почему тут выигрывают черные? После хода черных в пункт (1) белые вынуждены своим ходом закрывать четверку черных в пункте g10. Теперь черные играют f11 или j11, строя сразу две своих четверки. Белые не в состоянии прикрыть их обе одним ходом, поэтому вынуждены признать поражение.

На титульной картинке тоже есть VCF

image

Так как VCF всегда состоит из отыгрышей четверок одним игроком и прикрытия этих четверок его соперником, назовем каждую пару таких ходов шагом VCF. На рисунке выше VCF черных состоит из 7 шагов.
Шаг VCF состоит всегда из двух пустых пунктов в ряду-тройке. Один из этих пунктов – отыгрыш четверки, а второй – блок этой четверки.
Единственным препятствием успешного выигрыша на четверках является подкол.

Подкол – образование четверки соперника после отыгрывания очередного шага VCF.
То есть, подкол образуется тогда и только тогда, когда через блок четверки проходит тройка соперника. Будем говорить, что подкол «контрит» VCF.

image

Через блок первого шага VCF (пункт A) проходит тройка белых.
В позиции на рисунке уже выигрыша на четверках нет. Если черные будут ходить в пункт (1), то белые вынуждены ходить в пункт (A), сами того не подозревая, построив свою собственную четверку. Тут нарушилось второе правило победы, потому что, хотя и присутствует двойная тройка черных, но и присутствует четверка соперника. Поэтому черные ходят в пункт (B), а белые могут легко прикрыть угрозу по горизонтали 11.

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

image

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

Но что делать, если после очередного шага VCF у соперника возникает больше одной четверки? Пассивное прикрытие уже тут не спасет. Перед отыгрыванием этого шага нужно отыграть n-ное количество своих четверок, с помощью которых будут прикрыты будущие подколы (если конечно это вообще возможно в данной позиции).

image

На рисунке опять есть форсированный выигрыш на четверках в пункте (3), но если просто сходить в пункт (3), то у белых образуется сразу две четверки. Да, одна из этих четверок прикроется пассивно в пункте (4), как и раньше, но другая четверка белых (по диагонали) останется неприкрытой и они выиграют. Поэтому сначала черные отыгрывают свои четверки в пунктах (1) и (2), а потому уже ходят в пункт (3).
Еще один активный способ борьбы с подколами – растяжка.

Растяжка – принуждение соперника занять смежный пункт своего ряда.
То есть, заставить соперника растянуть свой собственный ряд. Этот прием как раз и отличает гомоку от крестиков-ноликов 5 в ряд.

image

Перед тем, как ходить в пункт (2), черные сначала растягивают будущий подкол ходом в пункт (1). Теперь ход белых в (g10) не создает ни одной четверки. Подкол полностью ликвидирован.

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

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

А что делать, если при своей очереди хода в позиции нет ни у нас ни у соперника выигрыша на четверках? В этом случае нужно атаковать. Но про это будет в следующем посте.

Автор: Сергей Чибиряев

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js