チェス AI を構築しようとしていますが、奇妙なエラーが発生します。序文として、私はスタックオーバーフローを調べて同様の問題を見つけようとしましたが、タプルのアンパックを正しく実装していると思っていたので役に立ちませんでした。コードにバグが見つからないようです。
以下は私の negamax 関数のコードです。チェス盤、現在のプレイヤー、現在の深さを受け取ります。
ボード位置の値を表す数値を現在のプレイヤーに返す board.evalFunction() 関数を使用します。その機能は正常に動作しています。エラーが発生している行にマークを付けました: ValueError: need more than 0 values to unpack
.
誰かが私を助けることができますか?
def negamax(board, player, depth):
if player == 'human':
opposite = 'computer'
else:
opposite = 'human'
if depth == 0:
return (board.evalFunction(player), None)
moveset = board.generateMoves(player)
maximum = -99999999999
optMove = ""
for move in moveset:
newBoard = copy.deepcopy(board)
newBoard.makeMove(move)
newBoard.rotate()
#The following line throws the error
score, move = -1 * negamax(board, opposite, depth - 1)
if score > maximum:
maximum = score
optMove = move
elif score == maximum:
if(random.choice([True, False])):
maximum = score
optMove = move
return (maximum, optMove)