五子棋是一种受大众广泛喜爱的游戏,其规则简单,变化多端,非常富有趣味性和消遣性。这里设计和实现了一个人机对下的五子棋程序,采用了博弈树的方法,应用了剪枝和最大最小树原理进行搜索发现最好的下子位置。介绍五子棋程序的数据结构、评分规则、胜负判断方法和搜索
二、评分规则
对于下子的重要性评分,需要从六个位置来考虑当前棋局的情况,分别为:-,|,/,/,//,//
实际上需要考虑在这六个位置上某一方所形成的子的布局的情况,对于在还没有子的地方落子以后的当前局面的评分,主要是为了说明在这个地方下子的重要性程度,设定了一个简单的规则来表示当前棋面对机器方的分数。
基本的规则如下:
* 判断是否能成5, 如果是机器方的话给予100000分,如果是人方的话给予-100000 分;
* 判断是否能成活4或者是双死4或者是死4活3,如果是机器方的话给予10000分,如果是人方的话给予-10000分;
* 判断是否已成双活3,如果是机器方的话给予5000分,如果是人方的话给予-5000 分;
* 判断是否成死3活3,如果是机器方的话给予1000分,如果是人方的话给予-1000 分;
* 判断是否能成死4,如果是机器方的话给予500分,如果是人方的话给予-500分;
* 判断是否能成单活3,如果是机器方的话给予200分,如果是人方的话给予-200分;
* 判断是否已成双活2,如果是机器方的话给予100分,如果是人方的话