Итак, у меня есть игра с функцией findViableMoves(base)
. Если я вначале вызываю эту функцию с параметром base
, я получаю вывод [move1, move2 ... moven]
, который обозначает все n жизнеспособных шагов, которые пользователь может выполнить, давая состояние base
. (на самом деле есть 2 корневых хода)
После выполнения перемещения, скажем, move2
- база изменяется в зависимости от хода, функция вызывается снова, и теперь у нас есть выход для findViableMoves (base), равный [move21,move22 .... move2n].
Глубина первого дерева
Если вы посмотрите на эту диаграмму, это очень похожая ситуация - нет возврата назад, это просто нормальное дерево. Мне нужна программа, которая выполняет поиск в глубину (я думаю?) По всем возможным ходам при заданном начальном состоянии base
, а затем возвращается затем в списке следующим образом:
[[move1,move11,move111],[move1,move11,move112],....[moven,moven1,moven11],...]
В этих списках будет больше элементов (максимум 14), но мне просто интересно, может ли кто-нибудь дать какие-нибудь подсказки о том, как я могу построить алгоритм для этого? Эффективность для меня не имеет значения, так как путей не так много, я просто хочу, чтобы это было сделано сейчас.