文末给链接
大概一个半月前,突发奇想写一个AI五子棋,顺便熟悉下机器学习的内容。经过一个多月的努力(其实我也没有天天在写,有点想法了就写写),我终于放弃了。是的,我放弃了!!!坚持就是胜利,放屁。还TM有句话:选择大于努力。没错,我选择放弃!原因嘛?方向努力错了,应该是先好好学习机器学习再来写游戏。还有自己太菜,机器学习的内容一个知识点我要花半天来理解,然后再花半天来写代码,最后花半天调试。要是遇上神经网络,还得花半天训练。都是晚上抽空在写的,寂寞的夜,我的泪。所以我决定,先滚去系统学习机器学习,再来说这个。不过虽然放弃了,不过这个半成品还是有点可玩性的。要是各位肯赏个脸,就下载去玩玩咯。我直接打包好了点开就能玩,链接在文末。
一.五子棋的架构1.主程序:gobang.py
这个程序文件包括了两个类Gobang()和Robot()类
Gobang主要实现玩家与电脑交互的界面,如下图:
Robot是基于基本规则设计的一个简单的智能程序,主要在对局中对与每一个点价值的判断,然后综合起来后电脑选择最有价值的点来下。
如何判断一个点的价值:
在棋盘上,一个点有四个方向,横竖左斜右斜。但电脑要在这里下棋时候,就会先判断在这四个方向上的总价值是多少。
举个例子,点一在这里可以形成连五,那么价值就是10000,点二只能形成活四,那么这个点的价值就是5000。所以电脑在判断完所有的点后,会选出一个价值最大的点下。比如点一。
附.五子棋的一些术语:连五,活四,活三,活二,眠四,眠三,眠二
2.SGFfile.py
这个没啥好讲的。当时在网上下载棋谱的时候,只能自己写一个程序来帮忙处理棋谱,让我的读出来,也可以帮助我将棋局生成棋谱。
3.CNN.py
CNN神经网络。去年很火的alphago就是用这个网络训练出来的,只不过他13层,我的才五层。这个真的也没啥好讲的。属于懂得人自然懂,不懂的人说再多也没用。
好吧,这么水我也过意不去。这篇文章写的还是不错的,想要了解的可以看一下:
技术向:一文读懂卷积神经网络CNN
二.使用注意在使用这个游戏之前需要几点注意的:
1.直接点击那个gobang.exe文件就可以玩了。
2.由于我只训练了黑棋的神经网络(原谅我的懒),所以在使用神经网络下棋的时候请不要让电脑持白棋
3.程序是我在64位win7编写的,不知道在其他系统能不能玩。
4.需要将exe程序和save文件放到一个文件夹中。
我将五子棋编译成exe可运行的程序,不过要求是win764位系统的。还有就是请将save文件和exe文件放在一个目录下边才行。
里面包括了源码,如果对于程序有什么意见可以在后台留言。
链接:https://pan.baidu.com/s/1kV9YSHT 密码:h94o
领取专属 10元无门槛券
私享最新 技术干货