我将尝试用简单的术语来解释这一点,因为它可能比我发布代码要短。我做了一个递归解决方案的一部分,它必须通过选择正确的“移动顺序”来完成游戏,如果它陷入僵局,那么它必须回溯。我当前的系统通过在任何不起作用的移动上设置一个标识符来工作,以便在回溯时不能再次使用它,直到找到新的路径/移动顺序。
但是我遇到了一个问题;游戏可以达到只剩下两步的状态,它们都不能解决游戏。我目前的系统基本上会让这两个动作不断地相互交换,因为解决方案尝试下一个动作,发现它不起作用,然后尝试下一个。我相信我的问题是我重置了我的标识符,它告诉解决方案不要使用移动,每次移动时,但我不确定我会如何设置它。
如果您需要任何进一步的信息或有任何见解,请告诉我。谢谢!