如何解决在3x4网格行x列上进行3排游戏的negamax算法
我正在为3x4(行x列)网格上的3排游戏的negamax算法而苦苦挣扎。它的演奏方式就像众所周知的四合一演奏,即将乐段丢掉(不像TicTacToe)。让我们称呼玩家R和B。R拥有第一个举动,B \的举动由negamax控制。可能的移动是1、2、3或4。R:移动3-> B:移动1-> R:移动3之后到达的相关位置。 1 2 3 4 | | | | | | | | R | | | B | | R | | 现在,为了抵御R的第三步,B必须自己打第三步,但它拒绝这样做。取而代之的是打第1步,R \的下一个步之后游戏结束。 我整天都在寻找negamax实现中的错误,顺便说一句,该错误对于3x3网格非常适用,但是我找不到任何错误。 然后我开始思考:关于negamax算法的行为的另一种解释是,在R以3x4网格的第3步开始游戏之后,无论什么变化,B都会丢失。 有人可以反驳这个主张或为我指出一个证明(我希望它是;-))? 谢谢,RSel解决方法
B3也丢失的证明:
B3:R(1,2,4)-> R1; B(1,4)-> B2(损失),所以B1; R(2,4)-> R2损失,所以R4; B(2,4)-> B2输了,所以B4; R现在输了任一个选择
...因此R1将因R而输-因此R将不会选择它。
B3:R(1,4)-> R2由于B2而丢失,因此R不会选择它
B3:R(1,4)-> R4; B2(强制); R2(强制) B在R \的下一步行动中输了
...所以B3和B1都输给了B ...所以B在这种情况下输了。
编辑:万一有人想知道其他\“ B3”结尾处的其他B选项(2,4):R(1,4)-> R1; B(1,4)-> B2(输),所以B1 \“ ...它们是无关紧要的,因为一旦Red选择R1,此情况就表明B(计算机)可以选择B1并赢。 B的其他选择到底发生什么并不重要-此选择将获胜,因此Red无法选择R1或他会输。
, 实际上,从一开始就是赢了。而且可以很容易地通过手工演奏。我将假设B避免了R的所有1步获胜,并且将按颜色标记移动,并在比赛发生的网格处进行标出。
1. R3,1
... B1,1 2. R3,2 B3,3 3. R4,1 B2,1 4. R2,2 (and R1,2 or R4,2 wins next)
... B2,3 3. R2,2 B2,3 4. R1,1 (and R1,2 or R1,3 wins next)
... B3,2 2. R2,1 or R4,1 wins next)
... B4,1 2. R2,1 B1,1 3. R3,3 4. R2,2 wins next)
至于您的算法,我将建议您对其进行修改,以偏爱获胜而不是损失,并且偏爱远处的损失而不是近处的损失。如果这样做,它将“加倍努力”以避免不可避免的损失。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。