日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

python alpha beta_python – 使用alphabeta TicTacToe找到最佳移动

發(fā)布時(shí)間:2024/9/30 python 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python alpha beta_python – 使用alphabeta TicTacToe找到最佳移动 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

試圖找到最佳動(dòng)作以及得分.我已經(jīng)讓我的程序正確地返回游戲的分?jǐn)?shù),但我希望它也能返回移動(dòng).如何更改我的代碼以便它執(zhí)行此操作?

this和

this類似.請(qǐng)參閱我的失敗代碼

here,如果游戲結(jié)束則返回?zé)o應(yīng)該是移動(dòng).

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

最佳答案 到目前為止,您可以跟蹤最佳移動(dòng),例如:

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

和其他情況類似

總結(jié)

以上是生活随笔為你收集整理的python alpha beta_python – 使用alphabeta TicTacToe找到最佳移动的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。