台灣最大程式設計社群網站
線上人數
722
 
會員總數:244573
討論主題:188713
歡迎您免費加入會員
討論區列表 >> C/C++ >> 遞迴minimax問題
[]  
[我要回覆]
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
遞迴minimax問題
價值 : 50 QP  點閱數:109 回應數:0

樓主

play20217
門外漢
0 5
28 3
發送站內信

請問我用遞迴寫了一個minimax的函式,但我要的不是scores[]內的最大值,是找出最大值後跟他相同索引下的action[]內的值,請問該怎麼做?
程式碼:
int minimax(int depth, int nodeIndex, bool isMax, int scores[], int dMax, int *action)
{
if (depth == dMax) {
return scores[nodeIndex];
}
else if (depth % 2 == 0) {
return max(max(max(max(max(minimax(depth + 1, nodeIndex * 6, false, scores, dMax, action), minimax(depth + 1, nodeIndex * 6 + 1, false, scores, dMax, action)),
minimax(depth + 1, nodeIndex * 6 + 2, false, scores, dMax, action)), minimax(depth + 1, nodeIndex * 6 + 3, false, scores, dMax, action)), minimax(depth + 1, nodeIndex * 6 + 4, false, scores, dMax, action)),
minimax(depth + 1, nodeIndex * 6 + 5, false, scores, dMax, action));
}
else {
return min(min(min(min(min(minimax(depth + 1, nodeIndex * 6, true, scores, dMax, action), minimax(depth + 1, nodeIndex * 6 + 1, true, scores, dMax, action)),
minimax(depth + 1, nodeIndex * 6 + 2, true, scores, dMax, action)), minimax(depth + 1, nodeIndex * 6 + 3, true, scores, dMax, action)), minimax(depth + 1, nodeIndex * 6 + 4, true, scores, dMax, action)),
minimax(depth + 1, nodeIndex * 6 + 5, true, scores, dMax, action));
}
}

搜尋相關Tags的文章: [ 遞迴minimax ] ,
本篇文章發表於2019-05-17 02:32
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
目前尚無任何回覆
   

回覆
如要回應,請先登入.