Algorithm 无法接近Mancala自由移动到Minimax节点

Algorithm 无法接近Mancala自由移动到Minimax节点,algorithm,minimax,Algorithm,Minimax,我正在编写用python玩的Minimax算法。我对代码没有问题,但对算法没有问题。 在曼卡拉,你可以获得一个免费移动,我不知道如何创建该游戏状态的节点。对于minimax,假设min在max之后移动,反之亦然,但当max获得自由移动时,max会连续移动两次。 我不知道我如何实现这一点,因为当max获得自由移动时,你必须再次在max的不同可能性之间进行选择 有人能帮我吗?非常感谢。最后我这样做了。例如,使用布尔值,当max player获得自由移动时,您将创建一个子最小节点,其游戏状态与之前相同

我正在编写用python玩的Minimax算法。我对代码没有问题,但对算法没有问题。
在曼卡拉,你可以获得一个免费移动,我不知道如何创建该游戏状态的节点。对于minimax,假设min在max之后移动,反之亦然,但当max获得自由移动时,max会连续移动两次。
我不知道我如何实现这一点,因为当max获得自由移动时,你必须再次在max的不同可能性之间进行选择


有人能帮我吗?非常感谢。

最后我这样做了。例如,使用布尔值,当max player获得自由移动时,您将创建一个子最小节点,其游戏状态与之前相同,且不增加深度值。该最小节点仅创建另一个最大节点,该节点与之前具有相同的游戏状态,且不增加深度。这对我有用

我终于这样做了。例如,使用布尔值,当max player获得自由移动时,您将创建一个子最小节点,其游戏状态与之前相同,且不增加深度值。该最小节点仅创建另一个最大节点,该节点与之前具有相同的游戏状态,且不增加深度。这对我有用

可以区分移动和层。一个移动可以由一个或多个层组成(通过赚取免费层),因此每个玩家只进行一个移动。虽然如果你能连续得到几个自由层,那么可能的移动次数会很大。@maraca我在想,例如,当max赢了一个自由移动时,它只有一个最小成功者,具有相同的游戏状态,没有移动。这样,max就可以从最小状态评估所有可能的移动,这与他赢得自由移动时的状态相同。你觉得呢?这也是可能的,但有点危险。如果可以获得比maxdepth/2更多的自由层,则最终可能会出现非法移动。它可能低估了2层或更多层的移动。你也可以在不同的深度对木板进行评估,但这可能没问题。@maraca层板是什么意思?对不起,我不是以英语为母语的人。谢谢您的帮助。层(单数)或层(复数)是子移动。例如,如果你有一个每回合可以做x个动作的游戏,那么你可以说每个动作由x个层组成。在Mancala,一个移动通常由1层组成,这可能会有点混淆,因为层和移动通常是相同的,除非你挣到免费层。你可以区分移动和层。一个移动可以由一个或多个层组成(通过赚取免费层),因此每个玩家只进行一个移动。虽然如果你能连续得到几个自由层,那么可能的移动次数会很大。@maraca我在想,例如,当max赢了一个自由移动时,它只有一个最小成功者,具有相同的游戏状态,没有移动。这样,max就可以从最小状态评估所有可能的移动,这与他赢得自由移动时的状态相同。你觉得呢?这也是可能的,但有点危险。如果可以获得比maxdepth/2更多的自由层,则最终可能会出现非法移动。它可能低估了2层或更多层的移动。你也可以在不同的深度对木板进行评估,但这可能没问题。@maraca层板是什么意思?对不起,我不是以英语为母语的人。谢谢您的帮助。层(单数)或层(复数)是子移动。例如,如果你有一个每回合可以做x个动作的游戏,那么你可以说每个动作由x个层组成。在曼卡拉,移动通常由1层组成,这可能会有点混淆,因为层和移动通常是相同的,除非您赚取免费层。