五子棋AI大战OC实现
2017-04-14 本文已影响204人
YYSheng
Gobang
五子棋AI大战,该项目主要用到MVC框架,用算法搭建AI实现进攻或防守
一.项目介绍
1.地址:
github地址:GobangWar
2.效果图:
五子棋大战1五子棋大战2
五子棋大战3
二.思路介绍
大概说下思路,具体看代码实现。
1.画棋盘及落点
这个可以去慕课网看看这个视频:五子棋,里面有详细的讲解,我对里面的进行了部分优化。比如怎么判断两点之间到底触摸的哪个点。
2.重来
每个点都是一个对象,让后把对象放数组里面,进行删去,或者重置。
3.人机模式
AI简介.png这里的AI(人工智能)比较简单,这个算法可深可浅,此项目就是比较浅的,深的可以去看算法,此项目AI的大体思路是:
-
先便利棋盘上面的点,找到AI的棋子有活四,死四的点,既下一步能形成5个点的落子点,找到就直接在此点落子。
-
如果没找到,就遍历玩家活四,或者死四的点,并在此进行落点进行防守,虽然活四没法防守。
-
然后这两个点都没找到的话,就直接找AI有形成活三,或者死三的点,进行落子进攻。
-
如果没找到,就找用户能形成活三,死三的点进行防守。就这样简单的进行交互。
三.用到的三方和借鉴
感谢下面作者
3.慕课网五子棋
四.结语
如果能对你有帮助,就给个star或赞鼓励下,有什么没明白的欢迎留言交流。
2017-04-24更新:
1.新增难度选择按钮,实现了简单和中级两个难度的算法。
2.新增悔棋按钮。
3.代码库移动到最新的仓库位置,上述代码链接已修改