2018/5/20更新:專案程式碼已上傳到Github,點選此處可跳轉。
========分割線===========
現在已經是2016年。演算法課的大作業我選了五子棋,在沒做出來之前,出於習慣先在知乎上搜尋下有木有什麽好的思路和實作方法,於是便找到了這篇貼文。驚異於三樓的文刀秋二大一時候便做出了一個那麽厲害的五子棋,回去默默搜尋資料也做了一個簡易版的出來,技術手段主要包括:
* 博弈樹
* alpha-beta剪枝
* 加入啟發式搜尋
* 每層選取最有可能出現的10種可能
* 增量式的評分演算法
* 置換表
在
如何設計一個還可以的五子棋AI
中我作了詳細的介紹
在做了這幾個最佳化之後搜尋做到了7層。對弈了一下文刀秋二大一時候做的五子棋的hard級別:
其實這並不說明我的演算法是更優,可能對於2014年來說,cpu的運算能力還沒有現在強,所以當時文刀秋二也沒有把搜尋層數設定的很高。事實上這個簡易版的五子棋還可以打贏csdn上小有名氣的gobang,見下圖:
這只是一個非常簡易版本的五子棋,界面也很醜,有什麽不妥之處,希望大家指點出來。