(对不起,我可以犯下的所有错误:我在这附近有新的英语,而英语不是我的第一语言。)
我尝试使用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
提前谢谢。