Не потеряйте. Подпишитесь и получите ссылку на статью себе на почту.
В предыдущей статье, посвященной немногочисленным выигрышным стратегиям крестиков-ноликов, было рассказано, как выиграть в классической схеме игры, когда первый игрок (за крестики) начинает с хода в центр игрового поля. Однако существует еще одна менее популярная стратегия, при которой выигрыш менее вероятен, но все-таки возможен.
Суть этой стратеги заключается в том, что «крестик» осуществляет первый ход не в центральную ячейку, а в угловую. В этом случае, нолик имеет несколько вариантов действий.
Вариант 1. «Нолик» ходит в центр. Этот вариант наиболее вероятен как для умелого, так и для неискушенного игрока по тем причинам, которые описывались в . В этом случае игроку за крестики предлагается поставить свою фигуру в противоположный от первого хода угол. Теперь происходит второй ход нолика, который будет являться решающим. Если нолик ставит фигуру в неугловую клетку, то крестик вынужден защищаться, и игра, скорее всего, закончится ничьей. А если же нолик занимает угловую ячейку, то в этом случае у «крестиков» появляется беспроигрышная стратегия: возможность сделать «вилку», заняв оставшийся угол. Это алгоритм действий выглядит следующим образом:
Вариант 2. «Нолик» ходит в бок. В этом случае «крестики» уже с первого хода имеют выигрышную стратегию: необходимо сделать ход в центр, заставив «ноликов» защищаться, а затем ход в угол, чтобы получилась «вилка». Эта тактика изображена ниже:
Вариант 3. «Нолик» ходит в смежный угол.
В этом случае ситуация похожа на первый вариант, но «крестики» уже с первого хода имеют выигрышную стратегию: второй ход «крестиков» в противоположный от своего первого хода угол, затем «нолики» защищаются ходом в центр, «крестики» занимают оставшийся угол. И вуаля: «вилка» крестиков на двух прямых. Подобная схема действий описана ниже:
Вариант 4. Нолик ходит в противоположный угол. В этом случае сложно найти выигрышную стратегию, и крестикам остается рассчитывать лишь на ничью.
В том случае, когда «крестики» начинают игру ходом в угол, «ноликам» нельзя совершить роковую ошибку, то есть поставить свою фигуру в бок или в смежный угол. В этом случае проигрыша практически не избежать. Наиболее подходящей стратегией будет ход в противоположный угол или ход в центральную клетку. Однако, в последнем варианте важно вторым ходом занять не угловую, а боковую ячейку, перейдя в атаку.
Если вы не читали нашу предыдущую статью о тактиках в игре крестики-нолики, то вы можете перейти к ней . В этой статье вы сможете найти схему со всеми возможными вариантами действий.
Как написать бота, которого будет нельзя обыграть в «крестики-нолики», или Знакомство с правилом «минимакс»
Вполне возможно, что после сотен партий в «крестики-нолики» вы задумывались: каков же оптимальный алгоритм? Но если вы здесь, то вы наверняка ещё и пробовали написать реализацию этой игры. Мы пойдём дальше и напишем бота, который будет невозможно обыграть в «крестики-нолики». Предугадав ваш вопрос «почему?», ответим: благодаря алгоритму .
Как и профессиональный шахматист, этот алгоритм просчитывает действия соперника на несколько ходов вперёд - до тех пор, пока не достигнет конца партии, будь то победа, поражение или ничья. Попав в это конечное состояние, ИИ начислит себе положительное количество очков (в нашем случае +10) за победу, отрицательное (-10) - за поражение, и нейтральное (0) - за ничью.
В то же время алгоритм проводит аналогичные расчёты для ходов игрока. Он будет выбирать ход с наиболее высоким баллом, если ходит ИИ, и ход с наименьшим, если ходит игрок. Используя такую стратегию, минимакс избегает поражения.
Попробуйте сыграть вот в такую игру.
Алгоритм «минимакс» проще всего описать в виде рекурсивной функции, которая:
Если вы не знакомы с рекурсией, то вам стоит посмотреть эту лекцию из гарвардского курса CS50:
Чтобы разобраться в том, как устроен минимакс, давайте напишем его реализацию и смоделируем его поведение. Займёмся этим в двух следующих разделах.
Мы рассмотрим ситуацию, когда игра подходит к концу (смотрите картинку ниже). Поскольку минимакс проходит по всем возможным состояниям игры (а их сотни тысяч), имеет смысл рассматривать эндшпиль - так нам придётся отслеживать меньшее количество рекурсивных вызовов функции (всего 9).
Пусть ИИ играет крестиками, человек - ноликами.
Чтобы упростить работу с полем, объявим его как массив из 9 элементов со значениями, равными содержимому клеток. Заполним его крестиками и ноликами, как на картинке выше, и назовём origBoard .
Var origBoard = ["O",1,"X","X",4,"X",6,"O","O"];
Затем объявим переменные aiPlayer и huPlayer и присвоим им значения "X" и "O" соответственно.
Кроме того, нам потребуется функция, которая ищет победные комбинации и возвращает истинное значение в случае успешного поиска, и функция, которая хранит индексы доступных клеток.
/* начальное состояние доски O | | X --------- X | | X --------- | O | O */ var origBoard = [“O”,1 ,”X”,”X”,4 ,”X”, 6 ,”O”,”O”]; // человек var huPlayer = “O”; // ИИ var aiPlayer = “X”; // возвращает список индексов пустых клеток доски function emptyIndices(board){ return board.filter(s => s != "O" && s != "X"); } // победные комбинации с учётом индексов function winning(board, player){ if((board == player && board == player && board == player) || (board == player && board == player && board == player) || (board == player && board == player && board == player) || (board == player && board == player && board == player) || (board == player && board == player && board == player) || (board == player && board == player && board == player) || (board == player && board == player && board == player) || (board == player && board == player && board == player)) { return true; } else { return false; } }
Итак, давайте определим минимакс-функцию с двумя аргументами: newBoard (новое поле) и player (игрок). Затем найдём индексы свободных клеток на поле и передадим их в переменную availSpots .
// основная минимакс-функция function minimax(newBoard, player){ //доступные клетки var availSpots = emptyIndices(newBoard);
Кроме того, нам нужно отслеживать конечные состояния и возвращать соответствующие значения. Если побеждает «нолик», нужно вернуть -10 , если «крестик» - +10 . Если размер массива availSpots равен нулю, значит, свободных клеток нет, игра закончится ничьёй, и нужно вернуть ноль.
// проверка на терминальное состояние (победа / поражение / ничья) //and returning a value accordingly if (winning(newBoard, huPlayer)){ return {score:-10}; } else if (winning(newBoard, aiPlayer)){ return {score:10}; } else if (availSpots.length === 0){ return {score:0}; }
После этого нужно собрать очки с каждой из пустых клеток. Для этого создадим массив ходов moves и пройдём в цикле по всем пустым клеткам, помещая индексы и очки каждого хода в объект move .
Затем зададим индекс пустой клетки, который хранился в виде числа в origBoard , равным свойству-индексу объекта move . Потом сходим за текущего игрока на пустую клетку нового поля newBoard и вызовем функцию minimax от другого игрока и получившегося поля newBoard . После этого нужно поместить свойство score объекта, возвращённого функцией minimax , в свойство score объекта move .
Если минимакс не находит конечное состояние, он продолжает рекурсивное углубление в ход игры до тех пор, пока не достигнет терминального состояния. После этого он передаёт очки этого «уровня» рекурсии на один уровень выше.
И наконец, функция сбрасывает изменения newBoard и помещает объект move в массив moves .
// массив для хранения всех объектов var moves = ; // цикл по доступным клеткам for (var i = 0; i < availSpots.length; i++){ //create an object for each and store the index of that spot var move = {}; move.index = newBoard]; // совершить ход за текущего игрока newBoard] = player; //получить очки, заработанные после вызова минимакса от противника текущего игрока if (player == aiPlayer){ var result = minimax(newBoard, huPlayer); move.score = result.score; } else{ var result = minimax(newBoard, aiPlayer); move.score = result.score; } // очистить клетку newBoard] = move.index; // положить объект в массив moves.push(move); }
Затем минимаксу нужно выбрать наилучший ход move из массива moves . Ему нужен move с наибольшим счётом, если ходит ИИ, и с наименьшим, если это ход человека. Таким образом, если значение player равно aiPlayer , алгоритм инициализирует переменную bestScore очень маленьким числом и идёт циклом по массиву moves: если ход move приносит больше очков score , чем bestScore , алгоритм запоминает этот move . В случае ходов с одинаковыми очками алгоритм запоминает первый из них.
В случае, когда player равен huPlayer , всё аналогично - только теперь bestScore инициализируется большим числом, а минимакс ищет ход move с наименьшим количеством очков.
В итоге минимакс возвращает объект, хранящийся в bestMove .
// если это ход ИИ, пройти циклом по ходам и выбрать ход с наибольшим количеством очков var bestMove; if(player === aiPlayer){ var bestScore = -10000; for(var i = 0; i < moves.length; i++){ if(moves[i].score > bestScore){ bestScore = moves[i].score; bestMove = i; } } }else{ // иначе пройти циклом по ходам и выбрать ход с наименьшим количеством очков var bestScore = 10000; for(var i = 0; i < moves.length; i++){ if(moves[i].score < bestScore){ bestScore = moves[i].score; bestMove = i; } } } // вернуть выбранный ход (объект) из массива ходов return moves; }
В следующем разделе мы смоделируем работу нашей программы, чтобы понять, как она работает.
Пользуясь схемой ниже, разберем пошаговую модель алгоритма.
Примечание : На схеме большие числа обозначают порядковый номер вызова функции, а уровни - то, на сколько ходов вперёд прошёл алгоритм.
Поскольку второй вызов обнаружил две пустые клетки, минимакс изменяет newBoard , помещая huPlayer во вторую свободную клетку. Затем он вызывает сам себя от newBoard и aiPlayer .
Во втором вызове функции алгоритм получает значения, возвращённые с нижнего уровня третьим и четвёртым вызовами функции. Поскольку ход huPlayer принёс эти два результата, алгоритм выбирает наименьший из них. Так как они одинаковы, алгоритм выбирает первый и передаёт его первому вызову функции.
На этот момент первый вызов функции получил оценку хода aiPlayer в первую пустую клетку. Затем он изменяет newBoard , помещая aiPlayer во вторую пустую клетку. После этого он вызывает сам себя от newBoard и huPlayer .
После этого первый вызов изменяет newBoard , помещая aiPlayer в третью пустую клетку. Затем он вызывает сам себя от newBoard и huPlayer .
Седьмой вызов получил лишь одно, положительное значение от нижних уровней. Поскольку это значение было получено в ход aiPlayer , алгоритм возвращает наибольшее из полученных значений. Поэтому он возвращает положительное значение (+10) на уровень выше, шестому вызову.
Поскольку шестой вызов обнаружил две пустых клетки, минимакс изменяет newBoard , помещая huPlayer во вторую пустую клетку. Затем он вызывает сам себя от newBoard и aiPlayer .
На этом этапе шестой вызов должен выбрать между счётом (+10), который вернул седьмой вызов, и счётом (-10), который вернул девятый вызов. Поскольку ход huPlayer принёс эти два результата, алгоритм выбирает наименьший из них и возвращает его на уровень выше в виде объекта с полями счёта и индекса.
Наконец, все три ветви первого вызова оцениваются (-10, +10, -10). Поскольку ход aiPlayer принёс эти три результата, алгоритм выбирает объект, содержащий наибольшее количество очков (+10) и его индекс (4).
В рассмотренном выше сценарии минимакс решает, что оптимальным выбором будет ход в центральную клетку поля.
К этому моменту вы должны были понять, как устроен алгоритм минимакс. Попробуйте написать его реализацию самостоятельно или посмотрите пример на GitHub или CodePen и оптимизируйте его.
Если вас заинтересовала тема ИИ в играх, советуем почитать наши материалы по этой теме.
Не потеряйте. Подпишитесь и получите ссылку на статью себе на почту.
Каждый из нас хотя бы раз в жизни играл в знаменитые крестики-нолики, пытаясь построить в ряд или по диагонали 3 крестика или 3 нолика на девятиклеточном поле. Если вы достаточно тренировались в этой игре, то, наверняка, знаете, что два опытных игрока всегда заканчивают партию вничью, и это делает игру для них неинтересной. В этой статье вы прочитаете о том, как выиграть в крестики-нолики или, по крайней мере, не проиграть, а также узнаете все хитрости и секреты прохождения этой популярной игры.
Немного о правилах. Цель игры выстроить на девятиклеточном поле подряд 3 одинаковых фигуры (3 крестика или 3 нолика) по горизонтали, по вертикали или по диагонали раньше, чем это сделает ваш партнер по игре. Игра в крестики-нолики начинается с хода игрока, который ставит крестик в любой клетке на игровом поле три на три (отметим сразу, что у него гораздо больше шансов выиграть, чем у противника). После этого второй игрок ставит в любой свободной ячейке нолик. Затем снова ходит крестик. Потом опять нолик. И так продолжается до тех пор, пока:
Первый ход крестиков. Самой выгодной позицией является середина игрового поля, или как отмечено на схеме клетка №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 нолика на девятиклеточном поле.
Материал о том, как побеждать, или, по крайней мере, никогда не програть в крестики-нолики, предлагает со ссылкой на 4brain.ru.
Если вы достаточно тренировались в этой игре, то, наверняка, знаете, что два опытных игрока всегда заканчивают партию вничью, и это делает игру для них неинтересной. В этой статье вы прочитаете о том, как выиграть в крестики-нолики или, по крайней мере, не проиграть, а также узнаете все хитрости и секреты прохождения этой популярной игры.
Немного о правилах. Цель игры выстроить на девятиклеточном поле подряд 3 одинаковых фигуры (3 крестика или 3 нолика) по горизонтали, по вертикали или по диагонали раньше, чем это сделает ваш партнер по игре. Игра в крестики-нолики начинается с хода игрока, который ставит крестик в любой клетке на игровом поле три на три (отметим сразу, что у него гораздо больше шансов выиграть, чем у противника). После этого второй игрок ставит в любой свободной ячейке нолик. Затем снова ходит крестик. Потом опять нолик. И так продолжается до тех пор, пока:
Первый ход крестиков. Самой выгодной позицией является середина игрового поля, или как отмечено на схеме клетка №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 клеток.
Существует еще одна менее популярная стратегия, при которой выигрыш менее вероятен, но все-таки возможен.
Начинаем с угловой клетки
Суть этой стратеги заключается в том, что «крестик» осуществляет первый ход не в центральную ячейку, а в угловую. В этом случае, нолик имеет несколько вариантов действий.
Вариант 1. «Нолик» ходит в центр. Этот вариант наиболее вероятен как для умелого, так и для неискушенного игрока по тем причинам, которые описывались в предшествующей статье . В этом случае игроку за крестики предлагается поставить свою фигуру в противоположный от первого хода угол. Теперь происходит второй ход нолика, который будет являться решающим. Если нолик ставит фигуру в неугловую клетку, то крестик вынужден защищаться, и игра, скорее всего, закончится ничьей. А если же нолик занимает угловую ячейку, то в этом случае у «крестиков» появляется беспроигрышная стратегия: возможность сделать «вилку», заняв оставшийся угол. Это алгоритм действий выглядит следующим образом:
Вариант 2. «Нолик» ходит в бок. В этом случае «крестики» уже с первого хода имеют выигрышную стратегию: необходимо сделать ход в центр, заставив «ноликов» защищаться, а затем ход в угол, чтобы получилась «вилка». Эта тактика изображена ниже:
Вариант 3. «Нолик» ходит в смежный угол.
В этом случае ситуация похожа на первый вариант, но «крестики» уже с первого хода имеют выигрышную стратегию: второй ход «крестиков» в противоположный от своего первого хода угол, затем «нолики» защищаются ходом в центр, «крестики» занимают оставшийся угол. И вуаля: «вилка» крестиков на двух прямых. Подобная схема действий описана ниже:
Вариант 4. Нолик ходит в противоположный угол. В этом случае сложно найти выигрышную стратегию, и крестикам остается рассчитывать лишь на ничью.
В том случае, когда «крестики» начинают игру ходом в угол, «ноликам» нельзя совершить роковую ошибку, то есть поставить свою фигуру в бок или в смежный угол. В этом случае проигрыша практически не избежать. Наиболее подходящей стратегией будет ход в противоположный угол или ход в центральную клетку. Однако, в последнем варианте важно вторым ходом занять не угловую, а боковую ячейку, перейдя в атаку.