minimax

    0熱度

    1回答

    因此,在閱讀關於Minimax的幾個博客(如http://neverstopbuilding.com/minimax)之後,我理解我的理解,但是使用當前代碼,我很難用它執行。到目前爲止,我有一個非常簡單的計算機AI,它只是隨機選擇當前狀態下的任何可用移動。 任何人都可以給我一個提示/提示從哪裏開始?我假設創造一些像一個新的國家目標,但不知道.. $(document).ready(function

    1熱度

    1回答

    對於夏季項目,我正在研究象棋引擎。我定義了移動合法性,我有一個工作板,並且我準備好開始移動選擇。對於極簡極小極大,我相信每個節點都會返回分數,但恐怕隨着分數向上移動,它將忘記它將要做出的移動。所以我想在minimax的每個節點內我都會擁有2個列表。一個用於移動,另一個用於移動的得分。 List<LegalMove> Moves = new List(256); List<Interger> sc

    -1熱度

    1回答

    我正在嘗試使用最小最大化算法來構建一個井字遊戲。它不能正常運行(意味着它產生的動作不是最優的),我認爲這是因爲我沒有考慮到對手的動作。我只是不太清楚如何將這個結合到我的代碼中。對於上下文,我從http://neverstopbuilding.com/minimax工作。 這是我的代碼。輔助方法都是自己的功能,但我沒有在這裏包括它們。 // this variable stores the opti

    0熱度

    1回答

    我已經建立在J​​ava中我自己的樹的數據類,這是一個極小的運算法則用來填充樹的每個節點下面的4個孩子。樹中的每個節點都會保存代表獨特遊戲狀態的Board對象(我創建的其他東西),並且樹中的邊(代表移動方向 - 遊戲是Tron)表示用戶爲達到狀態邊緣導致。我想創建一個函數,它接受一個樹並遞歸填充深度爲「DEPTH」(在其他地方作爲常量保持,而不是參數),並給出修改的遊戲狀態,給出每個玩家在四個可能

    0熱度

    2回答

    問題 一個簡單的兩個玩家的遊戲涉及了一堆ñ火柴,誰擁有交替兩歲 球員。在每一回閤中,玩家從堆中移除1, 2或3個火柴棒。刪除最後的 火柴的玩家會失去遊戲。 A)什麼是遊戲樹的分枝因子和深度(給出一個用N來表示的一般解)?搜索 空間有多大? B)遊戲中有多少獨特的狀態?對於大N來說,可以做些什麼來使搜索更有效率? 回答 A)我說的分支因子是3,但我有道理,是因爲球員可能永遠只能去除高達3場比賽,這意

    0熱度

    1回答

    我使用Realm of Racket書中給出的存根作爲基礎,構建了一個tick-tack-toe遊戲的AI。到目前爲止,一切都進展順利。但是,當我嘗試在樹的根上運行我的minimax函數時,它將返回可以通過運行它獲得的最低可能值列表(以任一播放器作爲謂詞)。 下面是函數的代碼轉儲: (define (minimax tree player depth) (define (generate

    -1熱度

    1回答

    我正在做一個簡單的CLI tic-tac-toe遊戲,它使用一個使用LISP的alpha-beta修剪的negamax算法的AI,我正在人工智能如何實現其動作的問題。它不是完成它應該的單一動作,而是完全地完成遊戲,所以遊戲只有最後兩步。我已經運行了它(步驟),它看起來像問題是,在negamax函數的(when(> value bestValue))塊中設置了bestPath變量,即使它說該塊沒有被

    1熱度

    1回答

    我想弄清楚如何提高這個算法的速度。它完美適用於兩款遊戲(2人遊戲,CPU vs人類),但問題是當我分配三個以上的樁(包含許多寶石,因此每個玩家可以拾取多於一個),計算機播放器永遠需要計算的招式: public Object[] minimax(int depth, int player) { if(hasPlayer1Won(player)){ return new O

    0熱度

    2回答

    下面的代碼我正在使用minimax樹看起來很糟糕。當然還有一個辦法來簡化這一點,並使用一個函數,而不是一個int.MaxValue的 if depth%2==1: min = 9999 for child in currentRoot.children: if child.score < min: min = child.score curr

    0熱度

    1回答

    我原本是使用遞歸來創建我的樹,只有我有評分的樹葉,但是因爲我需要知道深度才能知道是最小還是最大,我切換到depth=0開始。然而,由於有時候currentRoot.ia = None因爲沒有得分已經被計算得那麼深。我想要的是跟蹤深度,並找到currentRoot.ia評估過的最深的葉子,以及每個葉子深度的最小值。 我檢查是否有孫輩,因爲當我評估一個得分的位置時,我還添加了一個給出該得分的移動節點,