递归分支分析-alpha beta修剪

时间:2018-07-04 17:25:19

标签: python arrays algorithm recursion graphics

让我们说象棋引擎列出了所有可能的动作组合。 在所有这些分支中,我们如何检测到强制胜利?例如: x总是以以下方式赢得胜利:

player1: x
player2: y
player1: z (win)

player1:x
player2:u
player1:q (win)

在这2条路径中,玩家1通过选择移动x获胜。但是如果玩家1在他们的第一步中选择了另一步,那么玩家1将不会立即获胜(因此这是一个糟糕的选择)。但很明显,如果玩家1选择了最佳动作,便可以从这里强行获胜。

现在,我将使用哪种算法(python / javascript或伪代码),在这两种情况下,我都需要检测到这两个玩家的所有可能举动来强制赢。

类似:

    function forced_win(win_sequences, non_win_sequences):
        blah blah
        return True/False

win_sequences或non_win_sequences变量的示例为:

non_win_sequences = [ [x, f, g, h, y, s], [g, j, s, e, j], [g, f, o, u] ]
win_sequences = [ [x, f, g, s, q, z], [x, c, z] ]

请注意,这些元素没有任何意义,我只是在显示输入数据/变量的结构。

0 个答案:

没有答案