获胜策略算法简单游戏[2位玩家在网格上移动]
我正在寻找这个游戏中的获胜算法:
游戏在网格上播放(我们可以说它的无限网格)
- 有两个球员,1个(橙色)开始,他的移动长度恰好为1,球员2(绿色)为秒,他的移动长度恰好为2,他们轮流
第二位球员的目标是开始(即使球员1到达那里,他也会获胜)
第一个球员的目标是永远不会到达起点或以某种方式阻止比赛,所以没有更多的动作
- 他们不能经过他们已经走过的路径(点)
这里是一些游戏的例子(在第3场比赛中橙色球员获胜,因为没有更多的动作)
我会很感激这方面的任何帮助(如果知道这个链接是已知的解决算法,或者伪代码,或者只是简单的文本就可以理解这个策略)
谢谢
男,
尝试这个:
由于橙色玩家只能移动一个,因此朝着远离起点方向的方向移动。 1.最初移动顶部(建议)后,绿色移动后可能会有7个可能的点。 从当前点检查起点的方向。 2.如果从起始点左下角,则向下或向下移动橙色。 这种方式你永远不会走向起点。
为了进一步改善这一点,您可以将在此之前播放的所有动作存储在数据库中,并根据以下内容决定是向下还是向左(步骤2):
如果当前位置左侧的移动次数多于当前位置底部的移动次数---->向下移动,否则向左移动。
PS:最初的举动可以是任何事情。 策略是移走并避免在移动之间卡住。
橙总是可以通过始终远离原点而获胜。 基于飞机上非相关的随机散步,该策略对任何绿色可能尝试的方法都很有效。
如果你想做正确的分析,下面介绍如何开始。
在大多数博弈论问题中,关键是从最后开始倒退。 先让我们绿色,让我们假设我们有最后一步。 现在,为了简单起见,我们忽略“避免先前路径”的情况。 一旦我们理解了更简单的版本,我们就可以补充说明。
让我们离题一下,说我们简化版本中的“距离”必须是汉明距离。 一旦我们考虑障碍物,通过“两点之间的距离”,我们指的是与给定点之间的现有游戏路径不相交的最短路径的长度。 如果不存在这样的路径,则说距离是无限的。
在简单的版本中,每一个绿色的移动都会将距离原点的距离改变0或2,并且每个橙色的移动都将距离原点的距离改变1.记住这一点,我们从最后开始工作......
如果我们击出原点,我们就赢了,所以如果橙色让我们离开原点距离2,我们就会赢。 由于橙色每移动一步,如果我们将原点距离1(因为橙色必须移动到距离0或距离2),我们赢。 如果我们将原点距离为3,那么如果桔子移动到距离2,我们就赢了,但是如果他移动到距离4,则不一定。在这种情况下,我们可以很快看到桔子总是可以继续远离原点(如一个不相交的随机游走),我们永远不会回来。 但是,我们仍然有有用的信息,有两个因素是关键:
上一篇: winning strategy algorithm for simple game [2 players moving on grid field]