由于重新规划,所以前面已经写完的:
0、界面和位棋盘
1、超出边界的alpha-beta剪裁
2、更准确的评价函数
3、空招剪裁和冲棋延伸
4、静态搜索
5、置换表
这6个版本的程序,全部重写,重写之后会发布以下版本:
0、引言——认识“引擎”
1、实现界面和位棋盘
2、我的五子棋引擎如何评价局面
3、基石——超出边界的alpha-beta剪裁
4、接近人类的思考方式——迭代加深、棋盘剪裁、空招剪裁、冲棋延伸
5、重点问题重点分析——静态搜索
6、记住曾经的思考——置换表
7、做一个纯粹的思考者——将引擎和界面分离
另外:可以使用多线程来加快搜索从而提高棋力,但是我对多线程并不很熟悉,而且还没有考虑清楚如何分配搜索内容给各个线程,当然从根节点开始分配是一种不错的想法。
其实我的时间不充裕,孩子马上就要上小班了,准备经常带着孩子自驾游。平时忙得要死要活,假期里首先做一个好父亲。编程只是一个爱好,从我的博客上写的东西很杂乱就可以看出来,都是浅尝辄止。所以进度是无法保证的,但是一定会开源,并且把每个技巧、实现和细节都解释的清清楚楚,当然限于我本身的技术和认知水平可能有一些这样或那样的问题,希望通过和大家交流、高人指点一二,让连载给于这方面的爱好者们更多的帮助和启发。
前面的两篇,会在发布完上面列表中“3、基石”之后删除。另外还会整理一下其他的一些文章,可能会增加一些技术文章,也可能不会增加。主要是前面提到过的HOOK方面的内容,写了一个工具,用来获取、修改、发送网页的封包,还没想好要不要发出除了这些以外的一些功能,包括攻击在线FLASH等,主要是危害太大了一些。因为一些原因,FLASH插件有太多事情是管不了……好了,不写了,跑题越跑越远。继续整理位棋盘相关类的功能,主要是局面评价函数那里,虽然基本框架已经改好了,但是还无法完全适应空招剪裁、冲棋延伸、静态搜索这几种技术(熟悉象棋引擎的童鞋应该知道这几种技术都需要判断“被将军”的情况)。估计近期就可以把前面4个连载写出来,至少0、1是很快可以发出来的,发布新版本的时候会向大家汇报当前的进度。
全部文章和源码整理完成,以后更新也会在下面地址: