Самым очевидным кандидатом для меня была бы рекурсивная минимаксная подпрограмма для поиска лучших ходов. Это также касается многих теорий, лежащих в основе алгоритмов поиска, и было бы неплохо реализовать.
Пример:
http://www.devshed.com/c/a/Practices/Solving-Problems-with-Recursion/6/
Да, есть. Если у вас есть функция, которая оценивает "силу" позиции, скажем, для белого игрока. Вы можете переместить фигуру и вызвать ее рекурсивно, чтобы оценить ценность хода и выбрать лучший ход.
Вы должны вызвать ту же функцию для черного игрока, меняя роли черных и белых, таким образом оценивая «опасность» хода противника.
Затем снова для белых и т. Д.
Просто имейте в виду, что не следует слишком углубляться в уровни рекурсии, иначе это займет вечность.
Помните динамическое программирование , поскольку у вас есть несколько комбинаций, которые приводят к одной и той же доске, вы должны не забывать кэшировать ходы, чтобы избежать повторения вычислений
Если вы обнаружение рекурсии просто приведет вас к месту, где вы были, просто прервите этот вызов. Это известно как обратное отслеживание
Не шахматы, а классическая головоломка с шахматными фигурами: http://en.wikipedia.org/wiki/Eight_queens_puzzle
Поиск в глубину - главный кандидат на рекурсию. поэтому, если вы программируете ИИ для выполнения домашнего задания, то алгоритм просмотра ИИ, пытающийся определить лучший следующий ход, будет хорошим кандидатом.
Будьте осторожны - память может быстро закончиться. Вероятно, вы захотите ограничить количество ходов, на которые ИИ может смотреть.