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

樓主

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

請問最近再用minimax演算法來寫撿金豆遊戲,我先建立出minimax tree後把leaf的值求出來,之後用遞迴的方式往上得出答案,但結果都不太正確
// dMax是輸入的minimax tree最大高度,house用不到了(原本是放minimax tree)
程式:
int minimax(int depth, int nodeIndex, bool isMax, int scores[], int dMax, int ***house)
{
if (depth == dMax){
return nodeIndex;
}
else if (depth % 2 == 1){
return max(max(max(max(max(minimax(depth+1, nodeIndex*6, false, scores, dMax, house), minimax(depth+1, nodeIndex*6 + 1, false, scores, dMax, house)),
minimax(depth+1, nodeIndex*6 + 2, false, scores, dMax, house)), minimax(depth+1, nodeIndex*6 + 3, false, scores, dMax, house)), minimax(depth+1, nodeIndex*6 + 4, false, scores, dMax, house)),
minimax(depth+1, nodeIndex*6 + 5, false, scores, dMax, house));
}
else{
return min(min(min(min(min(minimax(depth+1, nodeIndex*6, true, scores, dMax, house), minimax(depth+1, nodeIndex*6 + 1, true, scores, dMax, house)),
minimax(depth+1, nodeIndex*6 + 2, true, scores, dMax, house)), minimax(depth+1, nodeIndex*6 + 3, true, scores, dMax, house)), minimax(depth+1, nodeIndex*6 + 4, true, scores, dMax, house)),
minimax(depth+1, nodeIndex*6 + 5, true, scores, dMax, house));
}
}
另一個問題: 在dMax=8時,會有6的8次方個leaf值,我用動態配置來分配記憶體,但會得到bad_alloc或當掉,請問有甚麼辦法解決?


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

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