五子棋人機對戰項目的實現

這個學期裏花了一個學期的時間零零散散寫了一個五子棋項目,項目的實現主要還是根據華南理工大學裏面劉瑞的一篇碩士論文《五子棋人工智能算法設計與實現》。這篇的引用率最高也是最通俗易懂的那個,其中也看了一本《數據結構,算法設計》的書,這本書非常的無聊,認真看完了遞歸就看不下去了。後面都是當字典用,遇到要運用的點,再看這個展開。效果還不錯。在整個項目過程中,一開始人機對戰用到的是貪婪算法,就是遍歷當前整個棋盤,專門寫一個評估函數,有多少棋子元在一起就評估多少分,最後根據分數來決定要下子的位置。這就是我們求當前局面最優值的思想,但是在實際的過程中,當我們實現這個算法的時候,只要我們有意三三開局,電腦就會識別不出來,所以這種算法的算力非常的有限。而我們採用博弈樹算法,不但可以判斷當前局面的最優值,還可以預判在接下來的一段時間內的預測值,雖然本質還是求最優解的過程,但是感覺智能程度已經大大提高。

項目的源代碼已經開源到GitHub:https://github.com/ChickenRolls/five-in-a-row

       開始這個項目首先我們還是先需求分析把要實現的功能先列出來:

做完需求分析我們再是實機模塊的設計。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章