Pull to refresh

Comments 6

Крестики-нолики это решённая игра :(

Согласен! Но я в решение не подглядывал, по-честному прокачиваю собственную логику. Уверен, кому-то будет полезно на старте изучения Python.

Мы в ВУЗе решали так: после каждого хода игрока строиш дерево со всеми вариантами ответного хода и для каждого варианта ещё поддеревья со всеми вариантами следующего хода игрока и выбирали наиболее выгодный. Вложенность деревьев можно было менять, тем самым настраивая уровень "тупости" ИИ (на сколько ходов вперёд ИИ может подсматривать). В крестиках-ноликах комбинаций не так уж и много, так что не сложно сгенерировать сразу все возможные ходы кожаного и ответные, которые приведут к победе либо к патовой ситуации.

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

Кажется, что все ваши функции можно уложить в класс. Почитайте об ООП. Для ML - один фиг, но для читаемости и дальнейшей разработки может быть полезно (напр, что, если придется играть в крестики-нолики без границ? ваши списки "лягут" (( )

Спасибо за совет! ООП и классы - буквально уже передо мной, допишу вторую часть статьи (завершу начатое этим способом) и примусь за них. Обучалки по ним уже скачал. Чем глубже в тему, тем сложнее, но интереснее.

Sign up to leave a comment.

Articles