2011-03-31 65 views
0

我知道Minimax決策樹是實現棋盤遊戲AI的好方法。目前,我正試圖實施一個名爲Gomoku的遊戲(連續5次)。但有一件事,我很困惑:Minimax/Alpha Beta算法 - 在Gomoku中尋找AI的移動

我環顧四周,似乎幾乎所有的Minimax/AlphaBeta算法返回一個整數。具體對我來說,eval(bestGomokuBoard)的返回值。我應該如何找到勝利板的座標?

這是我到目前爲止所做的: 我有一個20x20的整數數組,代表一個空白空間(0),計算機(1)和播放器(2)。 爲了減少開銷,Minimax樹中的每個節點都是較大陣列(較小的參考幀)的9x9陣列表示。我的eval函數返回一個int,我的minimax/alphabeta算法返回一個int。我如何找到AI動作的座標?

並提前致謝!

回答

2

你可以做出兩個稍微不同的最大函數。一個只返回一個整數(得分),另一個最大值函數(例如maxWithBestMoverootMax),它返回得分的最佳舉措。遞歸調用順序將比是:

maxWithBestMove --> min --> max --> min --> max.... 

已經在Negamax Framework看看筆記#2的chessprogramming維基。我給了here一個類似的答案。

+0

這就是爲什麼我愛Stackoverflow。我幾乎在代碼中提出了一個關於可怕錯誤的問題,但是當我看到這個答案時,我立即發現了問題的根源並修正了所有問題,儘管我的問題有所不同。然後我不需要問愚蠢的問題。 8) – 2013-03-11 12:29:57

+0

我很高興我可以幫助你解答我的問題。 – 2013-03-11 20:37:15