ミニマックスアルゴリズムのリストでPythonの関数max
とmin
関数を使用していて、max()
またはによって返される値のインデックスが必要min()
です。言い換えれば、どの動きが最大(最初のプレーヤーのターンで)または最小(2番目のプレーヤー)の値を生み出したかを知る必要があります。
for i in range(9):
newBoard = currentBoard.newBoardWithMove([i / 3, i % 3], player)
if newBoard:
temp = minMax(newBoard, depth + 1, not isMinLevel)
values.append(temp)
if isMinLevel:
return min(values)
else:
return max(values)
値だけでなく、最小値または最大値の実際のインデックスを返すことができる必要があります。
divmod
は、[i / 3, i % 3]
多くのことを言わなくても済むように存在しています。