电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

五子棋核心算法VIP免费

五子棋核心算法_第1页
1/9
五子棋核心算法_第2页
2/9
五子棋核心算法_第3页
3/9
五子棋的核心算法 时间:2010-03-26 20:50来源:网络 作者:佚名 点击: 3115次 介绍了五子棋程序的数据结构、评分规则、胜负判断方法和搜索算法过程。 五子棋是一种受大众广泛喜爱的游戏,其规则简单,变化多端,非常富有趣味性和消遣性。这里设计和实现了一个人机对下的五子棋程序,采用了博弈树的方法,应用了剪枝和最大最小树原理进行搜索发现最好的下子位置。介绍五子棋程序的数据结构、评分规则、胜负判断方法和搜索算法过程。 一、相关的数据结构 关于盘面情况的表示,以链表形式表示当前盘面的情况,目的是可以允许用户进行悔棋、回退等操作。  CList StepList;  //其中 Step 结构的表示为:   struct Step  {  int m;//m,n 表示两个坐标值  int n;  char side;//side 表示下子方  };  //以数组形式保存当前盘面的情况,  //目的是为了在显示当前盘面情况时使用:  char FiveArea[FIVE_MAX_LINE][FIVE_MAX_LINE];   //其中 FIVE_MAX_LINE 表示盘面最大的行数。   //同时由于需要在递归搜索的过程中考虑时间和空间有效性, //只找出就当前情况来说相对比较好的几个盘面,而不是对所有的可下子的位置都进行搜索, //这里用变量 CountList 来表示当前搜索中可以选择的所有新的盘面情况对象的集合:   CList CountList;  //其中类 CBoardSituiton 为:  class CBoardSituation  {  CList StepList; //每一步的列表  char FiveArea[FIVE_MAX_LINE][FIVE_MAX_LINE];  struct Step machineStep;//机器所下的那一步  double value;//该种盘面状态所得到的分数  } 二、评分规则 对于下子的重要性评分,需要从六个位置来考虑当前棋局的情况,分别为:-,|,/,\,//,\\ 实际上需要考虑在这六个位置上某一方所形成的子的布局的情况,对于在还没有子的地方落子以后的当前局面的评分,主要是为了说明在这个地方下子的重要性程度,设定了一个简单的规则来表示当前棋面对机器方的分数。 基本的规则如下: 判断是否能成5, 如果是机器方的话给予100000分,如果是人方的话给予-100000 分; 判断是否能成活4或者是双死4或者是死4活3,如果是机器方的话给予10000分,如果是人方的话给予-10000分; 判断是否已成双活3,如果是机器方的话给予5000分,如果是人方的话给予-5000 ...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

五子棋核心算法

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部