Я пытаюсь написать приложение для решения головоломок. Мне нужно выяснить, сколько ходов требуется и сколько существует решений.
Я бы предпочел не рассказывать слишком много подробностей о загадке. но игрок перемещается по сетке (скажем, 5 x 7), когда он движется, препятствия могут быть захвачены, поэтому необходимо отслеживать состояние доски. (это можно сделать как строку или массив)
Я понимаю, что мне нужно создать TreeNode, начиная с корня (начальная позиция игроков) и дать каждому узлу дочерние элементы возможных ходов, пока не будут рассчитаны все возможные ходы. Затем можно было собрать статистику головоломки. Количество возможных решений, минимальное количество ходов для решения, среднее количество ходов для решения и т. д.
Я создал логику головоломки, которая вернется, если ходы возможны и тому подобное. У меня возникают проблемы с созданием структуры TreeNode и обеспечением отсутствия дублирования перемещений.
Само приложение-головоломка есть на iPhone, но я пишу этот решатель/редактор на Mac. Любая помощь будет очень высоко ценится.