1、手机端页面文档仅支持阅读 15 页,超过 15 页的文档需使用电脑才能全文阅读。
2、下载的内容跟在线预览是一致的,下载后除PDF外均可任意编辑、修改。
3、所有文档均不包含其他附件,文中所提的附件、附录,在线看不到的下载也不会有。
当然,仅当前盘面进行判断是远远不够的,这样下棋很容易掉进玩家设下的陷阱,因为它没有考虑以后的变化。
所以在此基础上我们加入递归调用,即在电脑中预测出今后几步的各种走法,以便做出最佳选择,通俗地说的想了几步。
首先考虑到系统的运行效率,根据平常下棋的经验,手机下的第步子不需要经过复杂的分析计算。
如果人类玩家下的第步子是落在棋盘边界上时,则手机玩家的第步子将落在棋盘的正中央否则,手机玩家的第步子将在紧挨着人类玩家第步子的左边位置落下。
介于本游戏分为菜鸟级别与大虾级别,所以在棋子下完第步后的算法就有所不同。
数据结构要实现五子棋自动落子,这就需要对棋盘进行估值,估值这势必要要用到数据结构。
本次设计中我定义如下数据,以便算法进行估值。
五连你只需下步就可以胜利了活四两边都可成五的点活三在走步可以成活四的点冲四只有端可成五的点活二在走步可成活三的点眠三在走步可成冲四的点眠二在走步可成眠三的点菜鸟级别算法第个步骤是尽可能的收集棋盘格局的信息,并且使这些信息以定的格式存放再内存中,以便于第二步的处理。
第二个步骤就是,对收集到的信息进行分析处理,即要给出个规则,用穷举搜索的办法遍历所有收集到的信息,搜索的过程实际上是用所定下的规则去衡量每点的权值,搜索的目的是为了找到个权值最大的点,这个点就是当前的最优解,也就是应该下的子。
具体的说来,在第步中,可以用个的二维数组来存放棋盘上每个点的信息。
每下步棋,就用个的二重循环去遍历棋盘上的每个点,可以参照如下的方法,即对于每个点,我们假定这个点放上黑子,这时候就判断这个黑子放上去后,会形成多少个活活活和五,然后把对应的数值填入上面所说的二维数组里面,然后再假定这个点放白棋,又会形成多少个活活活和五,用两个二维数组分别存储黑子和白子的情况。
这样遍历完棋盘后,数组里面就分别保存了黑白棋子有用的棋盘格局信息。
上面说了用两个数组分别保存黑子和白子的信息是有必要的,因为可以计算出点对黑白双方的重要程度。
分别计算两个棋盘的最大权值,当玩家的权值比已方大时,需要把已方堵住,以防后患。
例如如果己方放点能成活,而玩家若放另点就是四三了,己方就要抢先占了该点。
这个算法找到当前最大权值时就进行落子,只看到当前的利益,就像刚开始玩的新手,不会对后面的棋子进行预测,很容易陷入别人的陷进。
大虾级别算法如上的算法也仅仅是考虑了当前的最优解,要进步提高人工智能,就要用更高级的搜索法,需要对未来的几步进行搜索。
我们引入今后几步预测法,具体方法是这样的首先,让电脑分析个可能的点,如果在这儿下子将会形成对手不得不防守的棋型例如冲四活三那么下步对手就会照您的思路下子来防守您,如此来便完成了第步的预测。
这时再调用模块对预测后的棋进行盘面分析,如果出现了四三双三或双四等制胜点,那么己方就可以获胜了否则,照同样的方法向下分析,就可预测出第二步第三步。
如果盘面上没有对手必须防的棋型,进攻不成的话就得考虑防守了,将自己和对手调换下位置,然后用上面的方法来预测对手的棋,这样既可以防对手巧妙的攻击,又能有实际就能发动反击。
五子棋实现欢迎界面实现五子棋的设计首先设计个欢迎界面,游戏欢迎页面包含些五子棋的介绍文字,以及三个按钮。
这个界面属于个,这平台下就是个用户界面。
创建有四个要点个是个类,要继承类。
里面需要复写方法。
每个都需要再文件中进行配置。
为添加必要的控件,想这个欢迎页面就添加了两个,三个。
对于五子棋新手或者对五子棋游戏不熟练的,可以点击菜鸟按钮。
这样不至于每局都输,有助于增加玩家的信心,同时增加五子棋新手练习棋艺。
对于有定五子棋经验的玩家,可以点击大虾按钮,与机子进行对弈。
机子具有定的智能,不会轻易被玩家打败,可以增加游戏的趣味性,同时增加玩家的棋艺。
然后有时当玩家刚打开游戏想进行番切磋,因为这样那样的原因,不得不停止游戏,则玩家可以点击退出按钮,等有时间再与机子进行棋艺切磋,如图所示。
图欢迎界面五子棋棋盘实现五子棋棋盘的实现通过类方法实现,这是个画矩形的函数。
类主要实现了屏幕的绘制过程,其中包含了很多实用的方法。
比如绘制条路径区域贴图画点画线渲染文本,下面是类常用的方法,当然开发网提示大家很多方法有不同的重载版本,参数更灵活。
。
是矩形的左边位置,是矩形的上边位置,是矩形的右边位置,是矩形的下边位置。
绘制时所使用的画笔。
通过遍历地画矩形,最后形成个棋盘。
代码实现如下,具体效果如图所示。
画棋盘画棋盘的外边框图棋盘棋子的绘制通过循环,遍历整个棋盘,若当前遍历到的棋子的值为时,绘制黑子当遍历到的棋子的值为时,绘制白子。
绘制棋子时用,方法。
这个方法第个参数是图片原来的大小,第二个参数是绘画该图片需显示多少。
也就是说你想绘画该图片的些地方,而不是全部图片,第三个参数表示该图片绘画的位置。
第三个参数指的是对应的画笔。
画棋子通过图片来画退出是点击确认,否则取消继续游戏。
提示框的实现是运用了中的,通过给添加标题按钮,按钮对应的事件即可完成对应提示框。
具体代码如下,效果如图所示。
温馨提示确定退出吗确定,确定按钮事件取消,,取消按钮事件图游戏的退出软件测试软件测试方案由于本次设计的是个小型的单机游戏,相对来说没有很复杂的思路,庞大的编码量。
单元测试和集成测试在编写代码的时候已经测试过了。
这里将着重讨论下系统测试。
在实际软件项目开发中,系统测试常常不是非常正式,测试的只要目标不再是找出缺陷,而是确认其功能和性能。
系统测试的目标在于通过与系统的需求规格说明进行比较,检查软件是否存在与系统规格不符合或者与之矛盾之处,以验证软件系统的功能和性能等满足其规格说明所指的要求。
软件功能测试用例系统测试测试主要的内容有当运行虚拟机时,进入程序列表,打开五子棋游戏程序。
打开程序后首先进入欢迎界面,在欢迎界面中选择自己需要进行游戏的级别。
打开后因为种原因继续进行游戏时,点击退出,退出程序,如表所示。
表测试用例序号输入及操作说明期望结果价标子文献网址访问时间年月日文献作者名以内的全部列出名以上则列出前名,后加等英文加格式严格按照后边的参考文献书写格式说明书写参考文献四字居中放置,使用小三号宋体字。
段前行,段后,论文最后的参考文献数量应该篇以上,至少篇英文参考文献,网络上面的文献不要太多。
行间距,段落前加间距,注意不要在篇参考文献段落的中间换页,内容使用五号宋体字,每行空两格放置。
致谢感谢对我几年的培养,感谢我在学术上的谆谆教诲。
我不仅学到了知识,而且学到了做人的准则和严谨的治学作风。
在此,表示衷心的感谢和崇高的敬意,级标题,小三号字,宋,加粗,居中,段前行,段后。
独立页。
附录程序代码代码头文件顺序表已满无法插入,参数不合法,参数不合法,程序代码主程序附录两字在第行居中位置,使用小三号宋体字。
内容为关键模块的主要程序代码。
行间距,内容使用五号宋体字,每行空两格放置。
小四号宋体,段前行,段后行包含章号和章名称两部分,并且章号和章名称之间用空格隔开。
二级标题,宋体小四号,左对齐,段前行,段后磅所有节标题都包含节号和节名称两部分,并且节号和节名称之间用空格隔开。
三级标题,宋体小四号,左对齐,段前行,段后,第三级和第四级标题均空两格书写序数,后空格书写标题内容中编号用等表示,下级用等表示。
注意在英文状态下输入的,字体为。
正文宋体小四号,固定行间距,首行缩进个字,后边的所有正文都相同四级标题,宋体小四号,左对齐,段前行,段后引用文献标号要设置成上标格式公众反馈公布公布和工业化标准化统化分散的各部分被接纳为标准合作伙伴意见其它方法图的发展历程二级标题三级标题公式公式应居中书写,公式的编号用括号括起写在右边行末,其间不加虚线。
图表公式等与正文之间要有行的间距。
文中的图表附注公式的序号律采用阿拉伯数字分章编号。
如图,表,公式等。
若图或表中有附注,采用英文小写字母顺序编号,附注写在图或表的下方。
表表格应随文给出,先见文后见表表中参数应标明量和单位的符号表序及表名置于表的上方,居中排写张表格应为个整体,表格页排不下允许下页接写,表题可省略,表头应重复写,并在右上方写续表。
表格不加左右边线。
表数据列表单位代表了面向对象方法的软件开发技术的发展方向,具有巨大的市场前景,也具有重大的经济价值和国防价值。
三级标题不仅可以为软件系统创建模型,还可以描述其它非计算机软件的系统,或是图序图号及图名置于图的下方,居中排写。
五号宋体,英文和数字为,段后行,图片居中,所有的图标图库存管理系统定要放在图的下面,而且在前面要有如图所示的字样。
小四号字右对齐居中表与文字之间距离为行段前行表号与标题五号宋体,居中,所有的表标表地域信息件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到端和端来实现,降低了系统的通信开销。
结构的优点是能充分发挥客户端处理能力,很多工作可以在客服端处理后在提交给服务器,对应的优点就是客服端响应速度快。
客户端和服务端常常分别处在相距很远的两台计算机上,客户端程序的任务是评测试工程师年版北京高等教育出版社,本科毕业设计指导教师评语表本科毕业设计评阅教师评语表本科毕业设计答辩记录表本科毕业设计答辩委员会评语表法。
当然,仅当前盘面进行判断是远远不够的,这样下棋很容易掉进玩家设下的陷阱,因为它没有考虑以后的变化。
所以在此基础上我们加入递归调用,即在电脑中预测出今后几步的各种走法,以便做出最佳选择,通俗地说的想了几步。
首先考虑到系统的运行效率,根据平常下棋的经验,手机下的第步子不需要经过复杂的分析计算。
如果人类玩家下的第步子是落在棋盘边界上时,则手机玩家的第步子将落在棋盘的正中央否则,手机玩家的第步子将在紧挨着人类玩家第步子的左边位置落下。
介于本游戏分为菜鸟级别与大虾级别,所以在棋子下完第步后的算法就有所不同。
数据结构要实现五子棋自动落子,这就需要对棋盘进行估值,估值这势必要要用到数据结构。
本次设计中我定义如下数据,以便算法进行估值。
五连你只需下步就可以胜利了活四两边都可成五的点活三在走步可以成活四的点冲四只有端可成五的点活二在走步可成活三的点眠三在走步可成冲四的点眠二在走步可成眠三的点菜鸟级别算法第个步骤是尽可能的收集棋盘格局的信息,并且使这些信息以定的格式存放再内存中,以便于第二步的处理。
第二个步骤就是,对收集到的信息进行分析处理,即要给出个规则,用穷举搜索的办法遍历所有收集到的信息,搜索的过程实际上是用所定下的规则去衡量每点的权值,搜索的目的是为了找到个权值最大的点,这个点就是当前的最优解,也就是应该下的子。
具体的说来,在第步中,可以用个的二维数组来存放棋盘上每个点的信息。
每下步棋,就用个的二重循环去遍历棋盘上的每个点,可以参照如下的方法,即对于每个点,我们假定这个点放上黑子,这时候就判断这个黑子放上去后,会形成多少个活活活和五,然后把对应的数值填入上面所说的二维数组里面,然后再假定这个点放白棋,又会形成多少个活活活和五,用两个二维数组分别存储黑子和白子的情况。
这样遍历完棋盘后,数组里面就分别保存了黑白棋子有用的棋盘格局信息。
上面说了用两个数组分别保存黑子和白子的信息是有必要的,因为可以计算出点对黑白双方的重要程度。
分别计算两个棋盘的最大权值,当玩家的权值比已方大时,需要把已方堵住,以防后患。
例如如果己方放点能成活,而玩家若放另点就是四三了,己方就要抢先占了该点。
这个算法找到当前最大权值时就进行落子,只看到当前的利益,就像刚开始玩的新手,不会对后面的棋子进行预测,很容易陷入别人的陷进。
大虾级别算法如上的算法也仅仅是考虑了当前的最优解,要进步提高人工智能,就要用更高级的搜索法,需要对未来的几步进行搜索。
我们引入今后几步预测法,具体方法是这样的首先,让电脑分析个可能的点,如果在这儿下子将会形成对手不得不防守的棋型例如冲四活三那么下步对手就会照您的思路下子来防守您,如此来便完成了第步的预测。
这时再调用模块对预测后的棋进行盘面分析,如果出现了四三双三或双四等制胜点,那么己方就可以获胜了否则,照同样的方法向下分析,就可预测出第二步第
