Я пытаюсь создать шахматный движок, основная идея c заключается в том, что когда я нажимаю кнопку, компьютер делает ход. Вот мой код:
def alphabeta(board, node, depth, a, b, maximizer):
if depth == 0:
return evaluate.node(node)
if maximizer == True:
value = -10**3 # Number that's smaller than what the evaluation algorithm can return
for child in board.get_all_nodes(node):
m = alphabeta(board, child, depth-1, a, b, False)
value = max(value, m)
a = max(a, value)
if a >= b:
break
return value
else:
value = 10**3 # Number that's bigger than what the evaluation algorithm can return
for child in board.get_all_nodes(node):
m = alphabeta(board, child, depth - 1, a, b, True)
value = min(value, m)
b = min(b, value)
if a >= b:
break
return value
Проблема в том, что этот код возвращает оценку наилучшего возможного хода вместо самого дерева ходов. Как мне найти лучший ход без повторного запуска всей функции?