Minimax算法的递归不会返回预期的内容 - Python

时间:2016-04-07 16:19:39

标签: python algorithm recursion minimax

(对不起,我可以犯下的所有错误:我在这附近有新的英语,而英语不是我的第一语言。)

我尝试使用minimax算法在Python中编写交互式连接4(稍后将添加alpha beta修剪)。事情是:当算法到达基本情况时,它继续评估一些更多的迭代(而不是仅仅返回)并且在某些时候(通常在经过三到四次迭代之后)它不会返回它假设的向量to:它只返回一个数字,所以Python启动了一个

TypeError: 'int' object is not iterable

与最佳或最差相比。我被困在这里很长一段时间,我只是不知道为什么会发生错误。

到目前为止,这是我的代码:

def minimax (board,depth,maximizingPlayer,token,node=-1) :

    # Base case
    if (depth==0) or (not successor(board)) or (winner(board,token)) :
        return [node,evaluation(board)]

    if maximizingPlayer:
        best = -math.inf
        for son in succesor(board) :
            place(board,son,token)
            [n,v] = minimax(board,depth-1,False,'O',son)
            remove(board,son,token)
            if v>best :
                move,best = n,v
        return move

    else : # minimizingPlayer
        worst = math.inf
        for son in succesor(board) :
            place(board,son,token)
            [n,v] = minimax(board,depth-1,False,'O',son)
            remove(board,son,token)
            if v<worst :
                move,worst = n,v
        return move

提前谢谢。

0 个答案:

没有答案