lihongxun945/gobang
javascript gobang AI,JS五子棋AI,源码+教程,基于Alpha-Beta剪枝算法(不是神经网络)
解決的問題
本專案提供一個基於瀏覽器的五子棋(五子連珠)AI對手,讓使用者能在無需伺服器端後端的情況下,與能即時計算最佳走法的電腦對手對戰。
工作原理
與現代神經網路不同,此AI採用基於Minimax演算法的古典博弈論方法。它透過搜索可能的未來遊戲狀態至一定深度,來評估潛在走法。為提升效能與效率,實作了多項優化:
- Alpha-Beta剪枝:減少搜尋樹中需評估的節點數量。
- 迭代加深:逐步增加搜尋深度,以在時間限制內找到最佳走法。
- Zobrist哈希:使用置換表快取先前評估過的局面。
- 殺手走法排序:優先搜尋在其他分支中導致剪枝的走法。
- PVS(主變化搜尋):進一步優化搜尋過程。
適用對象
- 希望在瀏覽器中與AI對戰五子棋的休閒玩家。
- 對實現古典遊戲AI、搜尋演算法與啟發式評估函數感興趣的開發者。
主要亮點
- 純前端實作:AI完全在瀏覽器內的JavaScript中運行,初始頁面載入後即可離線使用。
- 全面的測試套件:包含專用的AI評估工具,透過獨立程序測量Elo等級分、勝率與節點吞吐量。
- 戰術問題集:內建戰術謎題庫,用於檢測AI走法選擇中的「漏洞」或錯誤。
- 可自訂難度:可調整搜尋深度以改變AI的強度與處理時間。
相關
- 專案
- Dispatch
- 專案
- 專案
- 專案