logo
 
?

как выиграть в игре крестики нолики

В общем,не простые крестики нолики,а такие,где большое поле из клеток и надо крестики или нолики поставить 5 штук подряд по горизонтали,вертикали или диагонали.

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

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

Когда то я делал такую логику для программируемого калькулятора.

Там памяти мало будет (105 шагов, один шаг это присваивание, умножение, if), так что сильно не разбежаться. Логика подсказывает, что первый может походить 9 вариантами, второй 8 и так далее, что дает 9! Но чуточку поразмыслив, понятно, что при первом ходе возможно 3 варианта, все остальное - зеркально.

Да и не все варианты со стороны компьютера нам нужны (зачем нам хранить проигрышные варианты? Поэтому, если начинает человек, то у него 3 варианта, у компа - 1 (мы заведомо знаем, куда пойдем), дальше у пользователя 7 вариантов и пять.

3 При таком подходе очень легко обрабатывать зеркальные варианты.

То есть, если пользователь походил первый и начал с клетки 5, то мы просто мысленно разворачиваем поле и считаем, что он походил с клетки 1.

Первый ход пользователя может быть только с клеток 0 1 или 2.

Компьютеру можно начинать игру всегда с одной и той же клетки (если правильно помню свои выкладки, то начиная с центральной клетки и делать правильные хода, то можно либо выиграть, либо свести к ничье). Это делается на листике бумаги либо просчитывается программно. Вариант 0 - 2 - я расписал полностью и как видно он выигрышный при любых последующих ходах. А для небольших полей, самое очевидное решение -- полный перебор(для мелких), либо частичный перебор уже в процессе игры. просто строите полное дерево позиций(оно будет небольшим), приводите к двум оптимальным деревьям поменьше: за крестиков и за ноликов.

Сами раскладки предлагаю хранить в виде 9 символьных строк номер клетки для хода. Узлами будут номера клеток противника номер ответа. (C - computer - компьютер, U - User - пользователь). И всё, ИИ готов :) Все сведется к тому что будет бесконечно ничья ( если идеально играть ), подумайте над процентами вероятности, т.е.

Алгоритмов не так уж много для поля 3*3 Описывать любой времени много уйдет, самое простое возьми любую программу готовую и поиграй партий 100-200 поймешь как и куда ходить. один раз компьютер может сделать верный ход, а когда-нибудь в другой раз при низком коеф. Я как-то даже делал уровни сложности: легко, средне, тяжело.