2012-12-02 33 views
1

我已經拉出我的頭髮試圖找出如何在最小最大算法,並希望α-β剪枝算法的工作。我對發生的遞歸感到困惑。MINMAX簡單的演示爲井字遊戲

  • 首先,每個中間板都會得分嗎?或只有終端遊戲板。
  • 其次,究竟返回了什麼?該計劃如何知道下一步行動的位置?我發現即時消息應該返回棋盤得分(tictactoe,-1,0,1),但程序如何知道下一步應該進行哪一步。

我試圖找到一個簡單的C或C++程序來證明這一點,但我沒有多少運氣。我想學習這個算法,我可以爲我的計算機編程課程的其餘部分創建一個演示文稿。

非常感謝! V

+0

谷歌發現很多關於這個話題的討論。 –

回答

2

只有末端位置(靜止搜索後)進行評分。非終端位置比較遞歸minimax()調用返回的分數到目前爲止返回的最佳分數。在α-β的情況下,返回的分數也與α值進行比較。

minimax的點正在產生一個分數。你的錯誤似乎認爲極小極大搜索功能需要返回最佳移動。它可以用這種方式進行編碼,但對於您而言,在另一個執行移動的函數中使用頂級循環,使用minimax()生成分數並且未執行移動可能會更簡單。跟蹤移動的最佳分數,並在循環完成時返回該移動或選擇移動的時間用完。