1.這是乙個什麼專案
這是乙個用於計算機博弈大賽軍棋比賽中的乙個軍棋ai,在2023年計算機博弈大賽中獲得三等獎,在2023年計算機博弈大賽中獲得二等獎。
2.用到了什麼技術,為什麼用這項技術(以及每項技術很細的點以及擴充套件)
最大最小值搜尋樹,α-β剪枝。
3.過程中遇到了什麼問題,怎麼解決的。
專案整理:
ai執行邏輯:由裁判程式傳送一段一段的字串指令,然後對指令進行分析後分別進行不同的操作。
收到一系列請求程式名稱,隊員資訊的指令後返回資訊。
收到開始指令後初始化棋盤資訊,棋子位置,初始化概率表。
while(兩方的旗子都存在){
收到對方行棋指令後,重新整理概率表,重新整理棋盤,更新棋盤棋子,呼叫決策函式,判斷31步,下棋
收到我方下棋後裁判的反饋結果,重新整理概率表,重新整理棋盤,更新棋盤棋子,判斷31步
遊戲結束
現在詳述決策函式
設定乙個for迴圈最大為4,最小從1開始,最開始只進行1次最大最小值搜尋樹,第二次迴圈變為進行2層深度,最終變成4層深度,如果超時或者必勝的時候跳出迴圈
最大最小值搜尋樹函式和α-β剪枝:首先將必勝的條件列出,如果必勝直接返回最**值。
通過乙個函式計算出所有可能的走法儲存到乙個陣列中,然後使用快排基於每個走法的價值進行排序。深搜模擬每一種走法。每一層為自己或者敵人,葉子節點評估函式返回局面得分。最後通過函式得出最佳走法
編寫文件的思路
作為產品經理我們每天要寫的文件可是不少。除了brd mrd prd等我們要寫的正規文件。還包括一些其他無法起名,但我們每天還是要寫的文件。例如我最近在寫個需求概要文件。雖然是需求概要文件,但其實是乙個設計文件,要求產品經理在了解行業形態和公司產品特點的情況下,將公司產品與行業規則結合,創造乙個全新主...
關於編寫通用指令碼驗證的一點思路
想寫乙個比較通用的提交表單時的指令碼驗證程式,因為乙個個的編寫每個欄位的驗證實在是太麻煩了,昨天花了兩個小時想了一下,感覺乙個通用的驗證應該有如下特點 1 不應該和 有任何關聯,例如通過向表單元素上增加自己的屬性,這樣會使html 可讀性降低。如果使用伺服器端tag 如struts的html標籤 可...
關於編寫通用指令碼驗證的一點思路
想寫乙個比較通用的提交表單時的指令碼驗證程式,因為乙個個的編寫每個欄位的驗證實在是太麻煩了,昨天花了兩個小時想了一下,感覺乙個通用的驗證應該有如下特點 1 不應該和 有任何關聯,例如通過向表單元素上增加自己的屬性,這樣會使html 可讀性降低。如果使用伺服器端tag 如struts的html標籤 可...