gpt4 book ai didi

python - 使用 alphabeta TicTacToe 找到最佳着法

转载 作者:太空宇宙 更新时间:2023-11-03 11:21:59 24 4
gpt4 key购买 nike

试图找到最佳着法和分数。我已经让我的程序正确返回游戏分数,但我希望它也返回移动。我如何更改我的代码以使其执行此操作?类似于 thisthis .查看我的失败代码 here ,如果游戏结束返回的 None 应该是移动。

def alphabeta(game_state, alpha, beta, our_turn=True):
if game_state.is_gameover():
return game_state.score()
if our_turn:
score = -9999
for move in game_state.get_possible_moves():
child = game_state.get_next_state(move, True)
temp_max = alphabeta(child, alpha, beta, False)
if temp_max > score:
score = temp_max
alpha = max(alpha, score)
if beta <= alpha:
break
return score
else:
score = 9999
for move in game_state.get_possible_moves():
child = game_state.get_next_state(move, False)
temp_min = alphabeta(child, alpha, beta, True)
if temp_min < score:
score = temp_min
beta = min(beta, score)
if beta <= alpha:
break
return score

最佳答案

您可以跟踪到目前为止的最佳着法,例如:

    if game_state.is_gameover():
return game_state.score(), None
if our_turn:
score = -9999
for move in game_state.get_possible_moves():
child = game_state.get_next_state(move, True)
temp_max, _ = alphabeta(child, alpha, beta, False) # _ to disregard the returned move
if temp_max > score:
score = temp_max
best_move = move
alpha = max(alpha, score)
if beta <= alpha:
break
return score, best_move

其他情况类似

关于python - 使用 alphabeta TicTacToe 找到最佳着法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41111204/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com