← Крестики-нолики против компьютера

Как выиграть в крестики-нолики: стратегия, первый ход и ловушки

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

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

Почему важны центр и углы

На поле восемь линий: три строки, три столбца и две диагонали. Клетка стоит столько, через сколько линий она проходит. Центр входит в четыре линии, каждый угол — в три, каждый край — только в две.

Сколько из восьми линий проходит через каждую клетку.

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

Вилка: как на самом деле выигрывают

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

Ваш последний ход (обведён) создаёт две угрозы: левый столбец и нижнюю строку. Соперник закроет только одну клетку (✓).

Почти каждая партия, которая не кончилась ничьей, решается вилкой, и почти каждое поражение начинается на ход раньше — с хода, который её допустил. Поэтому защита — не «закрывать угрозы» (их видят все), а «не дать вилке появиться».

Порядок ходов, который не проигрывает

Каждым ходом делайте первое доступное действие из этого списка. Такой порядок использовали Аллен Ньюэлл и Герберт Саймон в своей программе для крестиков-ноликов в 1972 году. Мы прогнали его против всех возможных последовательностей ходов соперника: он не проигрывает ни первым, ни вторым — при точной формулировке пункта 4, на которой ошибается большинство пересказов.

  1. Выиграть. Если у вас два знака в линии и третья клетка пуста — поставьте третий.
  2. Заблокировать. Если у соперника два знака в линии и третья клетка пуста — займите её.
  3. Вилка. Если ход даёт вам две угрозы сразу — сделайте его.
  4. Не дать вилку. Если у соперника ровно одна клетка, ход в которую даст ему вилку, — займите её. Если таких клеток две, не занимайте ни одну: создайте свою угрозу, чтобы соперник был вынужден закрывать её в клетке, которая не входит в эти две.
  5. Центр, если он свободен.
  6. Противоположный угол. Если соперник занял угол, а противоположный ему свободен, — займите его.
  7. Любой свободный угол.
  8. Любой свободный край.

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

Если ходите первым: какой первый ход даёт больше шансов

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

Ваш первый ходПроигрывающие ответыОтветы, которые держат
Угол7 из 8только центр
Центр4 из 8любой угол; каждый край проигрывает
Край4 из 8центр, два соседних угла, противоположный край

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

Угол, центр, противоположный угол. Ход соперника: любой угол проигрывает (✗), любой край держит (✓).
Соперник занял угол. Это угроза по диагонали, и вы блокируете её в последнем углу (обведён) — а этот блок оказывается вилкой.

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

Угол, соперник — на край; центр, он закрывает дальний угол; последний угол с вашей стороны — вилка.

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

Центр, угол, противоположный угол. Край проигрывает для соперника (✗), угол держит (✓).

Если ходите вторым: ответы, которые держат

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

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

Ловушка первая: два противоположных угла вокруг вашего центра. Соперник начал в углу, вы заняли центр, он — противоположный угол. Естественный на вид ход — ещё один угол — проигрывает: вы создаёте угрозу, он блокирует, и его блок оказывается вилкой. Ставьте на край: так ваша угроза заставит его блокировать в клетке, которая ему ничего не даёт.

Два угла соперника, ваш центр. Край держит (✓), угол проигрывает (✗).

Ловушка вторая: его центр, ваш угол, его противоположный угол. Здесь всё наоборот: нужен угол, а край проигрывает.

Центр соперника и угол напротив вашего. Угол держит (✓), край проигрывает (✗).

Как обыграть каждый уровень на этом сайте

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

Простой ставит третий знак в ряд, если видит такую возможность, а в остальном ходит куда попало. Он никогда не блокирует. Поставьте два знака в линию и на следующем ходу закончите её. При лучшей игре вы выигрываете 99,5% партий, если ходите первым, и около 92%, если первым ходит он; остальное — случайный ход, который попал в вашу клетку, или линия, которую вы оставили ему открытой.

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

Эксперт играет безошибочно, обыграть его нельзя: ничья — лучший возможный результат. Из одинаково хороших ходов он выбирает тот, после которого у вас больше всего проигрывающих ответов. На практике: начиная, он всегда ставит в угол, где семь из восьми ваших ответов проигрывают, — отвечайте в центр. Следующим ходом он ставит рядом со своим углом, на край или в угол, и создаёт угрозу: закройте её и дальше держитесь порядка ходов выше. Когда первым ходите вы, на угол он отвечает центром, на центр — углом, на край — соседним с ним углом.

Ошибки, из-за которых на самом деле проигрывают

  • Ответ на угол чем-то, кроме центра. Самая частая проигрывающая ошибка — ведь неверны семь ответов из восьми.
  • Ход в угол, когда у соперника два противоположных угла вокруг вашего центра. Безопасен только край.
  • Своя угроза, когда у соперника уже есть угроза. Сначала блок — всегда, если только вы не выигрываете этим же ходом.
  • Закрыть очевидную угрозу и пропустить вилку за ней. Перед каждым ходом спросите себя, какая клетка даст сопернику две угрозы.
  • Первый ход на край. Он не проигрывает, но контролирует всего две линии, а половина ответов соперника держит — столько же, сколько после центра, только с более слабой клетки.

Игра в числах

  • 255 168 различных партий можно доиграть до конца. В 131 184 из них выигрывает первый игрок, в 77 904 — второй, 46 080 кончаются ничьей.
  • Если обе стороны ходят совершенно случайно, первый выигрывает 58,5% партий, второй — 28,8%, ничьих 12,7%. Первый ход — настоящее преимущество, но не решающее.
  • 765 существенно разных позиций, если не считать повороты и отражения. Это так мало, что перебор можно сделать на бумаге, — поэтому игра и стала первым классическим упражнением для игровых программ.
  • 8 линий решают всё: через центр проходят 4, через каждый угол — 3, через каждый край — 2.

Крестики-нолики — самая маленькая игра в нашем списке решённых игр. Как машина перебирает её клетка за клеткой — первый шаг в рассказе о том, как машины научились играть. А если игра стала слишком простой, её старшая сестра — ультимативные крестики-нолики: девять полей в одном, и вручную их не решить.

Вопросы и ответы

Решены ли крестики-нолики?

Да. При безошибочной игре обеих сторон партия всегда кончается ничьей. Игра достаточно мала — 255 168 возможных партий, 765 существенно разных позиций, — чтобы короткая программа проверила каждую линию.

Можно ли всегда выигрывать в крестики-нолики?

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

Какой первый ход лучший в крестиках-ноликах?

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

Что ставить, если соперник начал в углу?

В центр — и только туда: любой другой ответ проигрывает при правильной игре. Если затем соперник займёт противоположный угол, ставьте на край, а не в угол.

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

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

Что такое вилка в крестиках-ноликах?

Ход, который создаёт две угрозы сразу — две линии, где не хватает одного знака. Соперник закроет только одну, и вторая выигрывает. Почти каждая партия, которая не кончилась ничьей, кончается вилкой.

Можно ли обыграть компьютер в крестики-нолики?

Безошибочный — нет: лучшее, что можно получить, — ничья, и именно так играет уровень «Эксперт» на этом сайте. Слабые программы обыгрываются. Здесь «Простой» никогда не блокирует, а «Сложный» каждый раз проигрывает связке «угол, затем противоположный угол», когда первым ходите вы.

Есть ли преимущество у того, кто ходит первым?

Есть, но не выигрывающее. При случайной игре первый выигрывает 58,5% партий, второй — 28,8%. При безошибочной игре преимущество исчезает, и результат — ничья.

Сыграть в крестики-нолики с компьютером →
Куда отсюда
Как сослаться: «Как выиграть в крестики-нолики: стратегия, первый ход и ловушки», You vs Computer, https://youvscomputer.com/games/ru/tic-tac-toe-strategy.html