Gobang
五子棋AI大戰(zhàn),該項目主要用到MVC框架,用算法搭建AI實現(xiàn)進攻或防守
一.項目介紹
1.地址:
github地址:GobangWar
2.效果圖:
五子棋大戰(zhàn)1
五子棋大戰(zhàn)2
五子棋大戰(zhàn)3
二.思路介紹
大概說下思路,具體看代碼實現(xiàn)。
1.畫棋盤及落點
這個可以去慕課網(wǎng)看看這個視頻:五子棋,里面有詳細的講解,我對里面的進行了部分優(yōu)化。比如怎么判斷兩點之間到底觸摸的哪個點。
2.重來
每個點都是一個對象,讓后把對象放數(shù)組里面,進行刪去,或者重置。
3.人機模式
AI簡介.png
這里的AI(人工智能)比較簡單,這個算法可深可淺,此項目就是比較淺的,深的可以去看算法,此項目AI的大體思路是:
先便利棋盤上面的點,找到AI的棋子有活四,死四的點,既下一步能形成5個點的落子點,找到就直接在此點落子。
如果沒找到,就遍歷玩家活四,或者死四的點,并在此進行落點進行防守,雖然活四沒法防守。
然后這兩個點都沒找到的話,就直接找AI有形成活三,或者死三的點,進行落子進攻。
如果沒找到,就找用戶能形成活三,死三的點進行防守。就這樣簡單的進行交互。
三.用到的三方和借鑒
感謝下面作者
四.結(jié)語
如果能對你有幫助,就給個star或贊鼓勵下,有什么沒明白的歡迎留言交流。
2017-04-24更新:
1.新增難度選擇按鈕,實現(xiàn)了簡單和中級兩個難度的算法。
2.新增悔棋按鈕。
3.代碼庫移動到最新的倉庫位置,上述代碼鏈接已修改