我正在努力解决蛇拳本身的问题。我相信,如果我使用广度优先搜索(BFS)进行移动,它可以降低被大大限制的风险。我的问题是我应该寻找多少可能的空位(连接)以确保此移动不会导致我自己的拳击。
答案 0 :(得分:0)
你必须查看你是否装箱的距离总是取决于蛇的大小/位置。 100%确定的唯一方法是提前搜索所有动作,并避免引导蛇被装箱的动作。也就是说,你可能有更好的运气depth-first search超过广度优先,因为它可以迅速找到一个死胡同(如果它存在)。然后避免那些动作。在你的第二个例子中,深度优先将很快发现移动“向上”是一个死胡同。
答案 1 :(得分:0)
我认为搜索游戏树所需的深度移动数量与蛇在环绕自身时可以包含的方形区域有关。例如,长度为12的蛇:
----
|00|
|00|
91--
如果蛇向上(北),它仍然可以存活但只有当它向东移动时。如果它再次向北,它就会死亡。
蛇可以包含的最大区域是:(长度/ 4 - 1)^ 2。当这是小数时,你可能想要四舍五入。