想象一个非常简单的游戏,在任何非最终位置,主动玩家可以移动1或移动2.
假设球员1以第1步开始,他立即赢得比赛。如果他以移动2开始,如果玩家2移动1,他仍然可以获胜,但如果玩家2玩移动2则输掉。
value([1]) := win for player 1
value([2,1]) := win for player 1
value([2,2]) := win for player 2
显然,移动1是最好的举动。不仅因为它立即赢得了比赛,而且因为如果比赛改为2,则不能保证球员1获胜。
对于任何超过1的超前深度,GKMinmaxStrategist
想要移动2。请注意,战略家似乎甚至没有探索玩家1输掉游戏的可能性,只探讨了职位[1]
和[2,1]
。在我看来,GKMinmaxStrategist
正在修剪太多的职位。
我在这里错过了什么吗?
您可以在GitHub上找到示例项目。