计算机科学与技术游戏设计(5)

2019-03-11 09:09

五子棋游戏的设计与实现

4 五子棋的AI算法

在此系统的AI算法中,每当玩家落棋子的时候,电脑便会计算出电脑自己的最佳的下棋位置以及敌方最佳的下棋的位置,在这个完整的思考中电脑首先会搜索棋盘中的每一个可下棋位置进行不同方向搜索,经过确认了这个位置下棋价值后,最后才会找出棋盘中的下棋位置价值最大位置。最后才比较找出这次下棋会对自己最佳位置,以达到最佳下子和获胜目的。这一章是既最多汗水与泪水的一章。

4.1 电脑的智能下棋

每当玩家下棋之后,电脑会通过搜索判断出玩家下棋位置是不是有一个五子形成相连,如果是有则gameOver(),并且会提示游戏结束。如果没有形成则电脑会通过最优的算法阻止玩家去取得胜或者是去攻击玩家。在这一个过程中用了两个价值对象,用来存放双方最大下棋位置。

此时电脑首先搜索对手的价值最大位,通过遍历每一个棋位寻找匹配,当搜索到用户棋子位置时采用横竖撇捺四面八方的搜索方式,如图4-1:

图4-1

搜索完成后,再进入权值队列中检索当前位置的价值并且保存在一张表中,当循环遍历整个棋盘之后得到一张权值分数表,显示出每一个可下棋位置的权值分数,紧接着通过以上描述的方式检索自己的棋子得出自己的权值分数表,然后匹配出这两张表中最佳落子位置,得到敌方和己方的最佳落子位置之后,进行对比,如果敌方落子价值大于我方落子价值则采取防御措施阻断敌人落子位置,反之,则落到己方最佳落子位置达到最大进攻目的。以此一步步取得游戏的胜利。

17

五子棋游戏的设计与实现

4.2 游戏的胜负的判断

游戏的判断的胜负也是这个游戏其中的最简单的一个地方,因为我们有了前面下棋搜索先例。依据这五子棋的基本规则来看,游戏判断下棋的位置再去搜索落子的四个方向后,判段是否这有五子的形成,如果要是没有的话则轮到对方去下棋,如果有的话,那么游戏就会结束了,并且会度先连成这五子的一方获会得了胜利。

本系统中电脑主要是从落子的四个方向来搜索判断哪一方优先获得胜利,这四个方向都是以一个棋子(当前落子)为中心横竖撇捺这四个方向进行搜索判断的,。东南西北东加上四个角角都是设置参数count(搜索次数),赋值为8,每判断一次如果有相同的棋子,则--,出现5就break----胜利。代码实现如下:

// 是否结束此次检查

if(foe+empty == 2 || allies == 4) { if(allies == 4) { type = \ isBreak = true; }else if(foe == 2){ type = \ }else if(empty == 2) { type = \ }else {

type = \ }

weight.addWeight(type); break; }

if(isBack) { maxCount = maxCount - count; count = 0; space = -1; }

每当用户或者电脑落子完成之后都会调用检测是否结束游戏的功能,此时通过检索游戏中每一个己方游戏位置采用全搜索方式,一旦检索到五子相连则马上结束当前检索,将此五子加载到成功队列中,为成功队列中每一个棋子附加闪烁功能,并提示哪方执棋色赢得游戏并结束游戏,如图4-2

图4-2

18

五子棋游戏的设计与实现

5 软件测试

在任何的一个软件会在投放市场的使用之前,他们都需要进行许多大量的测试。在这个阶段需要我们需要寻找好的方案,这次测试的目的其实是尽量用不真确的方式去使用,这样就可以找到跟多的错误,使得用户在使用的过程中就算出错了由于测试阶段找出处理。本章的主要任务是对该系统功能进行了一个详细的测试反馈,并且会对程序的内部的数据进行一个有效的测试以及修改。

5.1 软件的测试定义

软件的测试就是利用software检测,首先正常测试,接着不正常测试,测试性能,总之胡乱弄,把自己当做没有接触过这类东西去使用,这些测试结束后需要生成一些报告。在执行完好测试用例之后,就要逐条找错位置,修改,保证软件的健壮力。测试不仅仅可以用机器也可以手动,总之找出各种各样的乱七八糟的问题,然后去解决。它是一个帮助识别和开发完成中的计算机软件中---完全的度以及quality软件过程;就是software quality assurance领域。hellobird也对软件的测试的目的也做出以下观点:

(1) 测试就是去胡搞,乱搞,一最差劲的使用方式使用;

(2) 如果你的测试有个性,说不定可以找出宝藏,也就是没有被找到的错误;

(3) 如果找到以上说的就是一个好的成功的测试。

5.2 界面测试

与用户最亲密最直接的地方就是界面了,能给用户留下第一美好印象的地方也是界面了。这些美好界面是可以引导用户使用和体验的,起到跟随设计思路的作用。古话说的好,人如其面,而界面就是软件的脸。如果软件的五官不好丑炸天又有谁会去理会呢,如果长的好看说不定就会有很多人围观了,要是做到能看能用那自然是好事,如果丑炸天一个再实用的强大的功能也是使得用户败兴不想多看避而远之。一个美好的按钮的名称也应该是一个易懂的,用词也是准确的,不要上一些偏词,难懂的字眼,并且要有着重,重点对象重点看待,看了就知道是什么最好了。如果能设计出不用查看帮助找人帮忙那就是一个成功的软件饿了。通常,很多人会参考系统的设计主题,这样会更接近美化。毕竟是一个团队的作品,总会比自己的好。

此系统的软件的界面中有以下几个重要的功能:开始游戏、游戏认输、我要悔棋,游戏帮助。

点击“开始游戏”按钮后,如果游戏已经开始则会提示游戏还未结束,否则进入游戏开始动画,一朵载着开始样式的云,从左到右运动,在中间的时候停留片刻最后进入游戏状态,测试结果如图5-1和图5-2

19

五子棋游戏的设计与实现

图5-1 图5-2

点击“游戏认输”按钮后,如果游戏尚未开始则会提示游戏还未开始,否则游戏弹出提示框,提示点击游戏结束执棋色,并将游戏状态转为结束状态,测试结果如图5-3:

图5-3

点击“我要悔棋”按钮后,首先将查看悔棋队列中是否存在,如果不存在程序则不作任何反应(游戏刚开始还未落子,当前已经悔棋过一次),如果游戏尚未开始则会提示游戏还未开始,若以上条件都为开始结果如图5-4和图5-5:

20

五子棋游戏的设计与实现

图5-4 图5-5

点击“游戏帮助”按钮,不管游戏是否开始或者结束都会弹出游戏帮助界面,此时帮助界面会覆盖游戏界面,单再次点击帮助面板是将回到游戏界面,测试结果如图5-6:

图5-6

经过多次对界面的各个有效功能按钮进行了全面的测试,是能够正常的使用操作的,这些操作也是非常简易明懂的,是一个非常适合首次接触本游戏的用户娱乐和学习之用的。

21


计算机科学与技术游戏设计(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:处理煤仓堵仓安全措施

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: