В небольшой простой игре, такой как крестики-нолики, вы можете построить дерево, где:
- каждый узел занимает позицию на доске
- каждый листовой узел - законченная игра со счетом +1 - Х побед, -1 если О побед, 0 за ничью
- каждый дочерний узел является результатом законного перемещения от его родителя
Затем Х ищет ход, который максимизирует минимальный результат, зная, что О будет искать (в его последующем ходу) ход, который минимизирует максимальный результат, зная, что Х будет искать (в своем следующем повороте к этому ) за ход, который будет ...
Это минимаксный алгоритм.
В Tic-Tac-Toe дерево может иметь только 9 слоев в глубину, и если вы хотите быть гладким, вы можете воспользоваться некоторыми симметриями платы и обеспечить управляемость вычислений и структур данных.
Обратите внимание, что для более сложных игр это не удастся по той или иной причине (шахматы являются детерминированными, но слишком большими, чтобы справиться с этим; нарды нуждаются в вероятностных методах и т. Д.), Но многие подходы являются вариациями на эту тему.