簡體   English   中英

如何在井字游戲中從Minimax算法獲得成功?

[英]How to Get Move From Minimax Algorithm in Tic-Tac-Toe?

到目前為止,我已經成功地能夠在Python中使用Minimax算法並將其應用於井字游戲。 我可以讓我的算法遍歷整個搜索樹,並返回一個值。

但是,我對於如何利用這一價值並將其轉化為行動感到困惑? 我應該如何知道要采取哪一步?

謝謝。

將minimax算法概念化為圖形,其中每個頂點都是板的可能配置,並且從頂點到其鄰居的每個邊都是從一個板配置到下一個板的過渡/移動。

您需要查看與當前狀態相鄰的每個板狀態的啟發式值,然后選擇具有最佳啟發式值的狀態,然后更新屏幕以顯示該板狀態。

如果要在電路板狀態之間進行動畫/過渡,則必須查看邊緣並找出兩個狀態之間的差異,然后相應地對該動畫進行動畫處理。

在使用MM算法時,您必須有一種方法來生成可能的后繼板。 每個都是移動的結果。 如建議的那樣,您可以修改算法以包括跟蹤用於生成木板的移動(例如,將其添加到木板的定義中,或使用具有木板和移動的結構); 或者,您可能在算法的頂層有一個特殊情況,因為這是特定動作重要的唯一情況。

例如,如果您的函數當前僅返回傳遞給它的電路板的計算值,那么它可能會返回一個dict(或元組,不清楚)包含該值和用於獲取該值的第一步,然后修改您的代碼以使用所需的任何位。

選擇您的舉動最簡單的方法是選擇您的舉動,該舉動具有該舉動產生的最大獲勝位置。

我會為您的搜索樹(游戲狀態)中的每個節點保留一個可能由當前游戲狀態創建的獲勝狀態的記錄。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM