0
我使用的是最小最大算法的遊戲,因爲有很多的可能性極小極大遞歸花費的時間太長,即使有「α-β剪枝」實施「極小」遞歸
更好的辦法我的代碼看起來有些東西是這樣的:
min(state,depth,alpha,beta):
if stopingCond:
return value
for moves in allmoves:
state.do(move)
beta = min(beta, max(state,depth,alpha,beta))
if alpha >= beta: return beta
return beta
max(state,depth,alpha,beta):
if stopingCond:
return value
for moves in allmoves:
state.do(move)
alpha = max(beta, min(state,depth,alpha,beta))
if alpha >= beta: return alpha
return beta
我知道有時候你可以使用for
循環而不是遞歸 ,但我無法找到一個方法來轉換。
如果任何人有一個好主意,我會很高興聽到它!
感謝,
哪個遊戲(知道分支因素)哪個深度? –
mmmm。這看起來像我的最小最大值。 ( – thefourtheye
)遊戲是撲克的變體,每輪可以有1到5次移動,最大深度爲40(5撲克) – ifryed