FutaHex2 源碼下載地址:github.com/FutaAlice/FutaHex2html
Hex棋 也稱六貫棋或海克斯棋,規則介紹參考 wiki(中文 / 英文)。linux
FutaHex2 是一個基於蒙特卡洛樹搜索的海克斯棋博弈程序。做者本人是 全國大學生計算機博弈大賽 2016年海克斯棋項目冠軍程序 FUTAHEX 做者。git
舊版程序 FUTAHEX 是在校期間的做品,已交由繼續參加比賽的後輩管理,基本中止維護。況且自己就是賽前一個月東拼西湊的產物,維護約等於重寫。github
2.0 版本僅沿用之前的思路進行重構,使用標準庫替換了舊版絕大多數代碼,移除了原開局庫和走法篩選部分待後續整理後加入。windows
程序分爲如下幾個模塊:多線程
核心代碼使用了 C++11/14 新特性,不支持 Visual Studio 2013 及如下版本的編譯器,不支持 g++ 4.x 及如下版本的編譯器。函數
—— | 最低要求 | 建議配置 |
---|---|---|
操做系統 | Win7 | Win7 / Win10 |
內存 | 8GB | 16GB |
VS 版本 | VS2015 | VS2015 |
Qt 庫 | Qt 5.x | Qt 5.8 |
注:程序編譯連接期對計算機內存無要求,但運行期 MCTS 過程會展開大量節點,對於 11 * 11 或更大尺寸棋盤須要至少 3.5GB 以上的空閒內存。32位有內存限制,建議使用64位編譯。visual-studio
工程內大量使用了 C++11/14 特性,僅支持 VS2015 及以上版本。截至做者開始寫 futahex2 的界面部分時, Qt 官方還沒有提供用於 VS2017 的插件,故建議安裝 VS2015。測試
若是僅編譯核心庫 fhcore 不須要圖形界面,也能夠選擇 VS2017。動畫
若使用其餘 Visual Studio 版本,則需自行修改代碼和工程配置,不保證可以正常編譯。
安裝選項參考:
用於圖形界面,講道理 Qt5.x 都是能夠的。
注意要安裝 msvc_64 版本。mingw版本不能在 VS 工程中使用,32位 Qt不能連接64位庫,運行時有 3GB 內存限制。
筆者用的 5.8,那就推薦 Qt5.8 算了。國內訪問 Qt 官網比較慢,掛個度盤連接方便下載。
qt_msvc2015_5.8.0.exe
官網地址:download.qt.io/archive/qt/
百度網盤:pan.baidu.com/s/1w3j_mQtiisorqTPaSYNKxQ
安裝選項參考:
用於在 VS 工程中使用 Qt庫,在安裝完成 VS 和 Qt 以後安裝。
qt_vs_tools_msvc2015_2.1.1.vsix
官網地址:download.qt.io/archive/vsaddin/
百度網盤:pan.baidu.com/s/1WbTk2xrnoKesNMZgzarJrg
所有安裝完成後打開 Visual Studio ,會發現菜單欄上多了一項「Qt VS Tools」。
從菜單欄 Qt VS Tools -> Qt Options,打開 Qt 配置,此時 Qt Versions 列表應該是空白的。
點擊 Add 按鈕添加安裝完成的 Qt 版本,點擊 path 選擇 Qt(msvc2015_64) 所在路徑並添加。
順序完成上述步驟後,打開 VS 新建一個 QtGuiApplication ,一路默認選項。
不改任何文件直接編譯運行,正常彈出以下圖所示的空白 Qt 窗口說明開發環境配置成功。
github 地址:github.com/FutaAlice/FutaHex2
從 github 下載代碼並拷貝至工做目錄。
工做路徑全英文無空格確保 Qt 插件可以正常工做。
使用 VS2015 打開 「FutaHex2/vsproject/FutaHex2_2015.sln」,設置 futahex2 爲啓動項,選擇 Release 模式,編譯運行便可。
用於 Linux 下編譯的 cmakelist 還沒有整理上傳。
本節將在工程更新後同步更新。
預計要作,但截止目前還沒有完成(可能永遠不會填坑)的部分。
優先級從上之下遞減。
TODO List 羅列出來發現仍是挺多的,畢業之後空閒時間愈來愈少,真是懷念上學時候天天翹課打遊戲看動畫的悠閒日子 (=w=)
看到這個項目的多半是參加計算機博弈大賽的各校隊員吧。做爲「過來人」我雖然清楚因爲比賽性質各校閉門造車的傳統,但真的看不慣總有一行代碼不會寫的人拿着往屆大牛學長的祖傳代碼刷分的行爲。
Hex棋,自2016年加入計算機博弈大賽項目,至今不過兩屆。相比其餘傳統項目,趕超強隊所創建的技術壁壘徹底能夠在幾個月內實現。
此次重構 FutaHex2 並基於 GPLv2 發佈,也是但願對開源作一些微小的貢獻。但願喜歡這個項目的諸位學霸,可以一塊兒開發維護。
總而言之,歡迎 fork,歡迎提交 PR。
建了個聊天吹水的 QQ 羣,歡迎進羣討論機器博弈相關問題。
遵照 GPLv2 的任何用途無需徵求程序原做者許可 :)