1 / 43
文档名称:

五子棋算法及五子棋初级花月图文并茂清晰版.doc

格式:doc   大小:6,153KB   页数:43页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

五子棋算法及五子棋初级花月图文并茂清晰版.doc

上传人:Huang6265 2020/8/3 文件大小:6.01 MB

下载得到文件列表

五子棋算法及五子棋初级花月图文并茂清晰版.doc

文档介绍

文档介绍:人机对战五子棋设计——算法设计一、五子棋基本规则五子棋行棋时,黑棋先下第一子,后白棋在黑棋周围的交叉点落子,之后黑白双方相互顺序落子。最先在棋盘线交点横向,纵向,斜向形成连续的五个棋子的一方为胜。二、,必须先有一个棋盘。所以,通过LinearLayout线性布局上画出一个棋盘。另外还需要四个按钮:开局、模式(人机对弈)、退出,提醒用户进行相应的操作。对于下棋的操作,通过增加鼠标事件***MouseListener,每次当用户点击鼠标时,先取得点击的坐标值,然后换算成对应棋盘上(即棋盘数组)的位置(数组的下标)。判断此处是否已经有棋子,如果有则提示玩家重新下子,否则通过java里的画图函数在此处画上棋子,重新刷新输出棋盘。判断该颜色棋子的上下左右是否满足连续五个,是的话提醒相应玩家获胜,不是的话,更换玩家下棋。对于玩家的更换是程序自动的,每次用户点击鼠标后,若本局还未结束则会变换玩家,从而画出对应黑方白方的棋子,直到有一方获胜程序结束。、人机对战,关于我们、退出游戏四个选项;玩家可以根据具体需要选择使用。程序默认对弈模式是人机对弈模式,并且是玩家先手,玩家是黑方,电脑是白方。。棋盘处于鼠标监听状态,当鼠标在棋盘上有点击操作的时候,程序会获得鼠标点击的坐标然后换算成对应的棋盘的位置,再判断此处是否有棋子。假如没有,那么在此处画出对应颜色的实心棋子;假如已经有棋子了,则提示玩家此处已经有棋子请重新下棋。当选择的是人机对弈模式的时候,轮到电脑下子时,电脑会通过算法来计算每个没有棋子的位置的分数,从而来选择最重要的位置下子。三、,因为这是整个程序最难的模块。算法的中心思想是:利用分数代表每个位置的重要程度,越重要的位置的分数值会越高,当电脑下棋时会先将电脑和玩家棋型的分数分别计算一遍,然后选择二者中分数最高的点下子。如果玩家的分数高,那么代表电脑应该防守,如果电脑的分数高,那么代表电脑应该进攻。×10大的棋盘为例:两个获胜表(ptable[10][10][192],ctable[10][10][192]):也就是获胜组合,因为五个子一线则胜,不在一线上的五个子就不在一个组合中,对于10×10的棋盘获胜的组合有192种(下面将会详细说明),获胜表用来表示棋盘上的每个位置是否在玩家或计算机的获胜组合中。一个二维数组([2][192]):记录玩家与计算机在各种获胜组合中填入了多少棋子。两个10×10的数组:用来记录玩家与计算机在各个棋盘位置上的分数,分数高的将是计算机下一步的走法。●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●图910×10棋盘获胜组合情况垂直方向:垂直方向上获胜组合数为10×6=60种;水平方向:水平方向上获胜组合数为10×6=60种;两个对角方向:倾斜方向上获胜组合数为(1+2+3+4+5)×2+6=36种。所以10×10的五子棋棋盘所有的获胜组合为:60*2+36*2=192种。,其优先级不同。例如,四个棋子连成一线且还能继续落子的棋型(活四)显然要比只有三个棋子连成一线(活三或死三)好。要使计算机正确地做出这种判断,就要把第一种棋型的估值设高。事实上,对于每一种特定的棋型,都需要相应的估值来反映其优劣情况。另外,由于搜索模块频繁地调用估值函数,为了尽可能地加快搜索速度,估值函数应设计的越仔细越好。估值时,需要从四个方向上来考虑所下棋子对当前盘面的影响。这八个方向分别是以该棋子为出发点,水平、竖直和两条为45度角和135度角的线。为方便分析棋盘上的格局,约定以“A”代表黑子,“B”代表白子,“?”代表棋盘上空位。算法中关于棋子死活的规定如下:一方落子后,它的落子连成的一条线有两条不损伤的出路,则称该棋型是活的。否则称该棋型是死的。比如关于活三的定义:不论对手如何落子,仍然至少有一种方法可以冲四。因此,B?AAA?B中的三个A,不能算是活三;B?AAA??B中的三个A,也不是活三,尽管它有可能成为活四。这样,棋型的估值设计才能比较细致。本文算法对特定棋型的估值如图10所示。图10特定棋型的估值之所以要给出如此大的分值差距,主要是考虑以后的全局判断的时候不会因为分数的累加使得电脑判断错误。而电脑在判断双方的分值的时候,就是在落子时对自己的落子点涉及分值和对方的分值进行对比来进行之后落子的判断。用两个二维数组(pgrades[,cgrades)存

最近更新

包装设计在提升产品附加值中的作用研究 26页

高考考生升学宴简单祝福语汇总七十六条 55页

生命的文章5篇 13页

幼儿园开学第一次上学的朋友圈文案(60句) 52页

高尔基人生哲理的名言集合五十条 52页

高校创新型科研团队的组织及其对绩效的作用机.. 2页

高寒地区电力检修员工绩效考核方法研究的开题.. 2页

高中选修地理学困生原因与对策研究--以江阴一.. 2页

高中物理家庭作业设计存在的问题及其策略研究.. 2页

肾上皮性肿瘤病例集锦-课件 114页

香菇风味物质研究及酶解香菇技术探索的开题报.. 2页

风电齿轮早期故障预警与诊断的研究的开题报告.. 2页

风力发电机舱火灾细水雾灭火特性CFD模拟研究的.. 2页

颅内动脉瘤破裂出血的外科治疗及随访分析的开.. 2页

顺昌县土地利用变化与经济发展关系研究的开题.. 2页

2024年暑假社会实践报告范文(通用15篇) 55页

韦氏调衡手法配合穴位注射治疗非特异性下腰痛.. 2页

2024年暑假安全家长心得体会(精选15篇) 27页

2024年智能控制个人职业生涯规划书范文(精选.. 58页

面向复杂显示表面的多投影校正技术研究的开题.. 2页

面向元搜索引擎的文本数据库的表征和排序的开.. 2页

面向Web站点的标签标识相关技术的研究与应用开.. 2页

非物质文化遗产宋锦的设计流程研究开题报告 2页

非同步物理层网络编码的误符号率分析方案的开.. 2页

青岛市财源建设信息平台建设研究的开题报告 2页

青岛前湾保税港区规划与运行机制研究的开题报.. 2页

钢材物资供货方案投标方案 7页

大班科学活动《有趣的转动》说课稿 8页

商用飞机制造生产建设项目可行性研究报告 97页

中华苏维埃共和国 26页