Правила игры в крестики нолики. Как написать бота, которого будет нельзя обыграть в «крестики-нолики», или Знакомство с правилом «минимакс Выигрышные ходы в крестики нолики

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

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

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

Крестики-нолики, правила игры

Игровое поле представляет собой квадрат размером 3х3 нарисованный на листке бумаги и расчерченный на девять клеток. Две линии проводятся вдоль квадрата, две линии поперек.

Варианты, когда игровое поле имеет размеры от 4 х 4 до бесконечности, рассмотрим ниже, после разбора комбинаций игры в поле 3х3.

Базовые принципы общие, и освоив алгоритм "три в ряд", вы сможете уверенно играть в более сложные и интересные варианты этой древней игры.

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

Игроки по очереди меняются, кому играть за крестиков и ноликов.

Древние китайцы вместо рисованных символов "Х" и "0" на поле ставили камни, черные и белые. Сейчас дома в качестве поля можно использовать шахматную доску и шашками обозначать клетку, на которую сделан ход.

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

Стратегия победы пошагово видеоразбор

Небольшой видео ролик, для тех, кому так проще воспринимать информацию. Кому интереснее читать, листаем дальше.

    Возможны два варианта исхода игры:

  1. Вы победили.
  2. Ничья. Закончились пустые клетки на игровом поле и ходить больше некуда.

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

Для удобства рассказа, я каждый квадрат игрового поля обозначил цифрами, от 1 до 9.

(5) - центральная клетка.

(1), (3), (7), (9) - угловые клетки.

(2), (4), (6), (8) - боковые клетки.

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

Ситуация №1, крестики ходят в центр

Когда крестики первым ходом занимают центральную клетку (5), ноликам остается ходить в угловую клетку или в боковую.

На этом ходу уже все решается. Сходили нолики в угловую клетку - это ничья. Если нолики сходили в любую боковую клетку - вы победили. Можно начинать новую партию, эта игра дальше не имеет смысла.

В нашем примере нолики сходили в боковую клетку (8).

Крестики ответным ходом занимают любую угловую клетку, для примера клетку (1) и получают линию из двух крестиков (см. рисунок).

Главная премудрость игры и основа всей тактики держится на двух принципах:

Принцип 1. Занимай ту клетку, которая принесет тебе немедленную победу;

Принцип 2. Если такой клетки нет, занимай клетку, которая принесет немедленную победу сопернику.

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

Крестики занимая клетку (7) нейтрализуют угрозу со стороны ноликов и одновременно с этим строят две линии из своих фигур. Для победы в следующем ходе крестикам нужно будет занять клетку (3) или (4). См. шаг 5.

Такое построение, когда одним ходом создается две угрозы, называется ВИЛКА.

Нолики в шестом шаге заняв клетку (3) закрывают одну угрозу со стороны крестиков.

Крестики по принципу 1, ходят в клетку (4) и одерживают победу.

Ситуация №2, крестики ходят в центр

Предположим, что теперь вы играете ноликами. Чтоб не проиграть эту встречу, первым ходом нужно занять угловую клетку. Без разницы какую, на ваш вкус (1), (3), (7) или (9). Для примера возьмем (1), см. рисунок ниже, шаг 2.

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

Нолики закрывают линию крестиков, и создают свою угрозу - см. шаг 4.

Крестики по принципу 2 ходят в квадрат (4), нолики отвечают в квадрат (6). См. шаг 5 и 6.

Независимо от того, каким был предыдущий ход у крестиков, ноликам следует занимать оставшуюся свободную боковую клетку (2) или (8). Крестики занимают последнюю свободную клетку - игра закончена ничьей.

Вилку крестикам при таком начале игры построить не получится, но и ноликам не дадут. Если по невнимательности, после 6-го шага, нолики сходят в угловую клетку (9) вместо боковой (2) или (8), то крестики одержат победу построив горизонтальную линию (2)-(5)-(8).

Ситуация №3, крестики ходят в угол

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

Ход ноликов, как и в ситуации №1, от этого хода зависит исход игры. Если нолики сходили в боковую клетку, то вы построите вилку и победите.

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

В случае хода ноликами на боковую клетку, шаг 2, вы занимаете еще одну угловую клетку, образуя угрозу - линию из двух фигур. См. шаг 3.

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

Если противник попался на уловку и сходил в клетку (5), мы занимаем клетку (2) и линия построена (1)-(2)-(3)

Не будем недооценивать соперника, и он в шаге 4 закрыл нашу угрозу ходом на боковую клетку (2)

Крестикам ничего не остается, как по первому принципу занять центральную клетку (5) и построить вилку.

Теперь, см. шаг 6, куда бы нолик не ткнулся, у нас останется свободной одна из двух угловых клеток (7) или (9), ход в которую и принесет нам победу.

Ситуация №4, крестики ходят на боковую клетку

Ход сам по себе в плане будущей победы не оправдан. Варианты исходов - ничья, или проигрыш по невнимательности.

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

Рендзю, жемчужная нить, гомоку, пять в ряд

Когда вам стало тесно и скучно в игровом поле 3х3, и играть три в ряд уже не спортивно, переходим на большую игровую площадь.

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

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

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

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

По правилам, первый ход делают черные и им запрещено делать вилки 3х3, 4х4, а так же ряд из 6 и более "камней" своего цвета подряд.

Зато черные могут делать вилки размером 3х4, когда за один ход образуются две перекрещивающиеся линии - одна длиной три камня, вторая из 4 камней. Так что нет повода расслабляться у того, кто играет белыми.

    Белые, за то, что ходят вторыми - имеют следующие преимущества:

  • Могут строить вилки любого размера и любой кратности;
  • Победу белым приносит линия не только 5 в ряд, но и из большего числа камней;
  • Для своей победы белые могут вынудить построить черных линию из 6 и более камней подряд.

Ничья

Игрок, может пропустить ход, если ему в данный момент не выгодно менять расположение своих камней на игровом поле.

Если оба игрока подряд отказались от хода, объявляется ничья.

Закончились все свободные клетки - ничья.

Получается, игрок еще может пропустить ход, потому что ему некуда ходить.

Гомоку, отличия от рендзю

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

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

Сервисы, где можно играть онлайн

У всех сервисов для игры онлайн реализованы режимы игры с компьютером, с другим пользователем и вторым игроком, который находится рядом с вами.

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

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

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

С вами был Александр Утышев

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

Для начала хочу определиться с основными моментами. Во-первых, существует множество разновидностей игры гомоку, я остановился на таком варианте: игровое поле 15х15, крестики ходят первыми, выигрывает тот, кто первый построит 5 в ряд. Во-вторых, игровой алгоритм расчета хода компьютером для простоты буду называть AI.

Спасибо за внимание. Надеюсь, вам было также приятно читать и играть, как мне - реализовывать:)

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

Update 1
1. На 10% увеличил значимость весов для атаки. Теперь атака для AI предпочтительнее защиты при прочих равных. Например, если 4ка у AI и у пользователя, то AI предпочтет выиграть.

2. Изменил значения весов по шаблонам. При более четкой балансировки весов можно добиться лучшей игры AI.
Значения весов у шаблонов сейчас такие:
99999 - xxxxx - пять в ряд (финальная выигрышная линия)
7000 - _xxxx_ - открытая четверка
4000 - _xxxx - полузакрытая четверка (две таких четверки предпочтительнее одной открытой, возможно «интереснее игра» будет)
2000 - _x_xxx, _xx_xx, _xxx_x - полузакрытая четверка с брешью (2 таких четверки равны одной открытой четверке и «предпочтительнее» открытой тройки; но если только 1 такая четверка, то открытая тройка предпочтительнее)
3000 - _xxx_ - открытая тройка
1500 - _xxx - полузакрытая тройка
800 - _xx_x, _x_xx - полузакрытая тройка с брешью
200 - _xx_ открытая двойка
Также небольшие веса (от 1 до 20-30) есть вокруг всех ходов, для создания «небольшой случайности хода».

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

Материал о том, как побеждать, или, по крайней мере, никогда не програть в крестики-нолики, предлагает со ссылкой на 4brain.ru.

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

Немного о правилах. Цель игры выстроить на девятиклеточном поле подряд 3 одинаковых фигуры (3 крестика или 3 нолика) по горизонтали, по вертикали или по диагонали раньше, чем это сделает ваш партнер по игре. Игра в крестики-нолики начинается с хода игрока, который ставит крестик в любой клетке на игровом поле три на три (отметим сразу, что у него гораздо больше шансов выиграть, чем у противника). После этого второй игрок ставит в любой свободной ячейке нолик. Затем снова ходит крестик. Потом опять нолик. И так продолжается до тех пор, пока:

  1. Кто-то из игроков не построит в ряд или по диагонали 3 крестика или 3 нолика, и в результате чего будет признан победителем;
  2. Не останется свободных клеток, и на поле не будет присутствовать трех идущих подряд одинаковых фигур — в этом случае объявляется ничья.

Тактика крестиков

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

Второй ход крестиков. После того как вы сделали первый ход, поставив крестик по центру, вам остается ждать ход противника. В целом, у него есть всего 2 возможных варианта действий: поставить нолик в одной из «угловых» ячеек (№1, №3, №7 и №9) или поместить свою фигуру в ячейки №2, №4, №6 или №8. И следует сразу отметить, что от этого хода уже коренным образом зависит ваша возможность выиграть.

Если игрок выбирает одну из недиагональных ячеек №2, №4, №6 или №8, то у вас появляется беспроигрышная стратегия. Другими словами вы сможете победить с вероятностью 100%, если знаете, как верно действовать. Этот алгоритм описан в схеме ниже. В первую очередь вам нужно поставить крестик своим вторым ходом в угловую клетку, вынудив соперника защищаться. А после этого вы занимаете еще одну свободную угловую клетку, в результате чего вы имеете 2 ряда, где не хватает всего одного крестика (это показано на последнем поле схемы). Куда бы соперник ни поставил свой нолик, вы в любом случае побеждаете, имея запасную стратегию.


Если же ваш соперник своим первым ходом выбирает ячейки №1, №3, №7 и №9, тогда вы не имеете абсолютной выигрышной стратегии, и вам следует уповать лишь на дальнейшую невнимательность второго игрока, что в такой простой игре бывает достаточно редко.

Третий и последующие ходы крестиков. Дальнейшие ходы «крестиков» должны быть направлены на построение в ряд 3-х собственных фигур, а также на пресечение маловероятных, но все-таки возможных попыток «ноликов» поставить подряд 3 фигуры.

Также, «крестики» для того, чтобы выиграть могут начинать не только с центральной клетки, но и с угловой. Подробнее об этом .

Алгоритмы ходов ноликов

Если вам выпало играть ноликами, то в большинстве случаев вам предстоит бороться только за ничью. Однако у вас есть шансы победить, если вы играете с совсем неискушенным игроком.

Первый ход ноликов. Если игрок №1 почему-то не занял центральную клетку - смело ставьте туда нолик и действуйте дальше, опираясь на стратегию крестиков, описанную выше. Но, скорее всего, центральная ячейка к моменту вашего начального хода будет уже занята. В этом случае не совершайте непростительную ошибку и не ставьте нолик в ячейки №2, №4, №6 или №8, а выбирайте только диагональные ячейки №1, №3, №7 и №9.

Второй и последующие ходы. Дальнейшие ходы «ноликов» должны быть направлены на пресечение попыток «крестиков» поставить подряд 3 фигуры, а также при возможности, на построение в ряд 3-х ноликов, что является практически невозможным.

Все стратегии игры

На графике, представленном ниже, который можно найти в Википедии , приведены возможные стратегии побед и ничьих в игре крестики-нолики на поле в 9 клеток.


Крестики-нолики 3×3: еще одна стратегия

Существует еще одна менее популярная стратегия, при которой выигрыш менее вероятен, но все-таки возможен.

Начинаем с угловой клетки


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

Вариант 1. «Нолик» ходит в центр. Этот вариант наиболее вероятен как для умелого, так и для неискушенного игрока по тем причинам, которые описывались в предшествующей статье . В этом случае игроку за крестики предлагается поставить свою фигуру в противоположный от первого хода угол. Теперь происходит второй ход нолика, который будет являться решающим. Если нолик ставит фигуру в неугловую клетку, то крестик вынужден защищаться, и игра, скорее всего, закончится ничьей. А если же нолик занимает угловую ячейку, то в этом случае у «крестиков» появляется беспроигрышная стратегия: возможность сделать «вилку», заняв оставшийся угол. Это алгоритм действий выглядит следующим образом:


Вариант 2. «Нолик» ходит в бок. В этом случае «крестики» уже с первого хода имеют выигрышную стратегию: необходимо сделать ход в центр, заставив «ноликов» защищаться, а затем ход в угол, чтобы получилась «вилка». Эта тактика изображена ниже:


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

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

Что делать ноликам?

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

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

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

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

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

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

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

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

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

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

Алгоритм победы

Для того чтобы научиться выигрывать или, по крайней мере, не проигрывать в крестики - нолики, нужно запастись вниманием и… терпением. При отсутствии ошибок с той или иной стороны игра будет заканчиваться ничьей бесконечно. Главный принцип, определяющий, как выиграть в крестики - нолики, заключается в создании ситуации, при которой после любого хода противника игрок заполнит одну из двух линий, то есть поставит три крестика или три нолика подряд. Пример такой ситуации показан на схеме №1.

Х О О
Х
Х

Схема №1 (При любом ходе нолика крестики выигрывают).

Порядок действий

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

О
Х
Х

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

О
! !
! !

Схема №3 (Занятие крестиком помеченных клеток ведет к проигрышу)

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