五子棋项目的实现(一)

 

 

       在这个学期里花了一个学期的时间零零散散写了一个五子棋项目,项目的实现主要还是根据华南理工大学里面刘瑞的一篇硕士论文《五子棋人工智能算法设计与实现》。其实我也不认识他,但是在知网找相关资料时,就发现这篇的引用率最高也是最通俗易懂的那个,其中也看了一本《数据结构,算法设计》的书,这本书非常的无聊,认真看完了递归就看不下去了。后面都是当字典用,遇到要运用的点,再看这个展开。效果还不错。在整个项目过程中,一开始人机对战用到的是贪婪算法,就是遍历当前整个棋盘,专门写一个评估函数,有多少棋子元在一起就评估多少分,最后根据分数来决定要下子的位置。这就是我们求当前局面最优值的思想,但是在实际的过程中,当我们实现这个算法的时候,只要我们有意三三开局,电脑就会识别不出来,所以这种算法的算力非常的有限。而我们采用博弈树算法,不但可以判断当前局面的最优值,还可以预判在接下来的一段时间内的预测值,虽然本质还是求最优解的过程,但是感觉智能程度已经大大提高。

项目的源代码已经开源到GitHub:https://github.com/ChickenRolls/five-in-a-row

       开始这个项目首先我们还是先需求分析把要实现的功能先列出来:

做完需求分析我们再是实机模块的设计。

 

posted @ 2018-11-25 09:57  诗酒-趁年华  阅读(937)  评论(0编辑  收藏  举报