Хорошее использование рекурсии в шахматном программировании? [закрытый]

6
задан Bill the Lizard 20 September 2012 в 12:58
поделиться

6 ответов

Самым очевидным кандидатом для меня была бы рекурсивная минимаксная подпрограмма для поиска лучших ходов. Это также касается многих теорий, лежащих в основе алгоритмов поиска, и было бы неплохо реализовать.

Пример:

http://www.devshed.com/c/a/Practices/Solving-Problems-with-Recursion/6/

7
ответ дан 9 December 2019 в 20:40
поделиться

Да, есть. Если у вас есть функция, которая оценивает "силу" позиции, скажем, для белого игрока. Вы можете переместить фигуру и вызвать ее рекурсивно, чтобы оценить ценность хода и выбрать лучший ход.

Вы должны вызвать ту же функцию для черного игрока, меняя роли черных и белых, таким образом оценивая «опасность» хода противника.

Затем снова для белых и т. Д.

Просто имейте в виду, что не следует слишком углубляться в уровни рекурсии, иначе это займет вечность.

3
ответ дан 9 December 2019 в 20:40
поделиться

Помните динамическое программирование , поскольку у вас есть несколько комбинаций, которые приводят к одной и той же доске, вы должны не забывать кэшировать ходы, чтобы избежать повторения вычислений

Если вы обнаружение рекурсии просто приведет вас к месту, где вы были, просто прервите этот вызов. Это известно как обратное отслеживание

1
ответ дан 9 December 2019 в 20:40
поделиться

Не шахматы, а классическая головоломка с шахматными фигурами: http://en.wikipedia.org/wiki/Eight_queens_puzzle

0
ответ дан 9 December 2019 в 20:40
поделиться
0
ответ дан 9 December 2019 в 20:40
поделиться

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

Будьте осторожны - память может быстро закончиться. Вероятно, вы захотите ограничить количество ходов, на которые ИИ может смотреть.

1
ответ дан 9 December 2019 в 20:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: