我正在嘗試使用最小最大化算法來構建一個井字遊戲。它不能正常運行(意味着它產生的動作不是最優的),我認爲這是因爲我沒有考慮到對手的動作。我只是不太清楚如何將這個結合到我的代碼中。對於上下文,我從http://neverstopbuilding.com/minimax工作。 這是我的代碼。輔助方法都是自己的功能,但我沒有在這裏包括它們。 // this variable stores the opti
我使用Realm of Racket書中給出的存根作爲基礎,構建了一個tick-tack-toe遊戲的AI。到目前爲止,一切都進展順利。但是,當我嘗試在樹的根上運行我的minimax函數時,它將返回可以通過運行它獲得的最低可能值列表(以任一播放器作爲謂詞)。 下面是函數的代碼轉儲: (define (minimax tree player depth)
(define (generate
我正在做一個簡單的CLI tic-tac-toe遊戲,它使用一個使用LISP的alpha-beta修剪的negamax算法的AI,我正在人工智能如何實現其動作的問題。它不是完成它應該的單一動作,而是完全地完成遊戲,所以遊戲只有最後兩步。我已經運行了它(步驟),它看起來像問題是,在negamax函數的(when(> value bestValue))塊中設置了bestPath變量,即使它說該塊沒有被
我想弄清楚如何提高這個算法的速度。它完美適用於兩款遊戲(2人遊戲,CPU vs人類),但問題是當我分配三個以上的樁(包含許多寶石,因此每個玩家可以拾取多於一個),計算機播放器永遠需要計算的招式: public Object[] minimax(int depth, int player) {
if(hasPlayer1Won(player)){
return new O
下面的代碼我正在使用minimax樹看起來很糟糕。當然還有一個辦法來簡化這一點,並使用一個函數,而不是一個int.MaxValue的 if depth%2==1:
min = 9999
for child in currentRoot.children:
if child.score < min:
min = child.score
curr