Как стать автором
Обновить

Крестики-Нолики (Tic Tac Toe) с компьютером на Python. Мой первый шаг к Machine Learning. Часть 1

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров14K
Всего голосов 5: ↑4 и ↓1+5
Комментарии6

Комментарии 6

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

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

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

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

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

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

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории