好像还从来没有人给出过这类问题的通用解法,也许是有的只是我孤陋寡闻而已。不管怎么样,我这里只给出一个大概,可以用来指导人工解答此类问题,当然也可以编写计算机程序来自动探索此类问题——这可以当作给计算机系学生的一个不大不小的作业了,也不排除某些IT研发机构用这类题目做面试或者笔试题的可能。
这些问题都只涉及有限个元素,而这些元素的状态组合是有限的,这些状态组合之间的变化又是受题目所制约的。从初始状态组合出发,按照题目出的条件,就有可能到达另外的一个或者一些状态组合,然后从新的状态组合出发又可以到达另外一个状态组合。如果在某一步回到了此前已经到达过的一个状态组合,也就是形成了回路,那么此路不通(除非此路径上某个状态组合为题目之解)。如果无法再继续增加新的可到达的状态组合,那就是题目无解。否则,一定会找到一个状态组合,满足游戏终止的条件。
至于使用深度优先还是宽度优先算法,这里就不讨论了。讲太多就没意思了。

.