连连看游戏设计与实现实现.doc
《连连看游戏设计与实现实现.doc》由会员分享,可在线阅读,更多相关《连连看游戏设计与实现实现.doc(59页珍藏版)》请在咨信网上搜索。
1、北京邮电大学毕业设计连连看游戏设计与实现摘 要“连连看”游戏是一款常见游戏。游戏速度节奏快,画面清晰可爱,适合大众玩家。本文主要介绍了游戏的设计过程,其中游戏主要分为4个模块,游戏界面模块、图片随机生成模块、图片消除路径判断、背景音乐模块。游戏核心模块中图片随机生成采用了数字和图片绑定,运用随机函数以及数组交换的算法,实现了游戏图片初始化状态,有效的解决了图片排布问题,方案简单易行;另一核心模块图片消除路径判断,主要采用了分类判断的算法,将连连看图片的位置一一归类,分类设计函数判断位置,实现游戏的基本消除功能。算法思路清晰,便于理解和编码。本游戏实现了连连看的基本功能,可以准确的消除图片、记录
2、分数、提示时间,同时设计了人性化的提示,解决僵局的功能,创新实现了新的连连看规则消除图片后给予时间奖励,激发了玩家的积极性。关键词: QT;连连看;算法;数组Link Game Design and ImplementationAbstractLinkgame is a common game. The game has fast-paced speed and the cute picture That is fit for public players . This paper describes the design process of the game , where the gam
3、e is divided into four modules, the game interface module , the module of randomly generated pictures , eliminating path judgment , background music modules.Game Core module, the module of randomly generated pictures ,bind pictures and images, use the random function and a array exchange algorithm,
4、and achieve game picture initialization state , effectively solve the problem of picture arrangement , the plan is simple ; another core module pictures ,eliminate path judgment , mainly uses classification algorithms to determine the location of linkgame picture and classify it , classification fun
5、ctions judge the location,and realize the basic function of the game cancellation . Algorithm is clear, easy to understand and encoding.The game realize the basic function of linkgame, it can eliminate the exact picture , recording scores , suggesting that time ,and design humane tips ,the function
6、of solving the deadlock . It achieves new rules - after elimination of the picture you can be given time bonus .That is stimulating the enthusiasm of the players .Keywords: QT; Link; algorithm; Array ii目录摘 要IABSTRACTII目录11. 绪 论11.1 游戏简介11.1.1 游戏背景11.1.2 游戏规则11.2 游戏功能11.2.1 美观大气的界面11.2.2 背景音乐的添加11.2.
7、3 奖励时间的设置11.2.4 提示功能11.2.5 僵局的重置11.2.6 得分记录、难度21.2.7 开始、重新开始、退出21.3 游戏设计的主要工作21.3.1 游戏设计需要解决的问题21.3.2 游戏设计需要使用的算法21.3.3 游戏设计创新点22. 系统分析42.1 技术可行性分析42.1.1 算法分析42.1.2 开发语言分析122.1.3 开发平台分析142.2 需求分析162.2.1 环境分析162.2.2功能需求分析162.2.3性能需求172.2.4可靠性和可用性需求173. 游戏概要设计183.1 任务概述183.1.1 目标183.1.2 需求概述183.2 总体设计
8、183.2.1 处理流程183.2.2 系统结构图183.2.3 游戏界面模块设计193.2.4 图片的随机生成193.2.5 图片消除路径判断193.2.6 背景音乐的模块214. 详细设计234.1 视图层设计234.1.1 界面效果图,如图4-1234.1.2 思路234.2 逻辑层设计234.2.1 图片偶数对存放以及随机生成234.2.2 图片消除路径判断详细设计264.3 其他控件的设计实现314.3.1 重排按钮实现314.3.2 提示按钮实现324.3.3 奖励时间和进度条的逻辑实现344.3.4 音乐模块实现365. 游戏测试385.1 软件测试385.1.1 软件测试简介3
9、85.1.2 测试方法385.1.3 测试步骤385.2 连连看游戏系统测试395.3 游戏系统性能分析39结论40致谢41参考文献42外文原文43中文翻译49 1. 绪 论1.1 游戏简介1.1.1 游戏背景连连看游戏是游戏中经典中的经典,曾经风靡网络,无论是单机版的还是网络对战的,它以简单,容易上手,图片新颖的特点获得了大量的粉丝,它是一款经久不衰的休闲小游戏,适合闲来无事的大众,以供消遣。游戏“连连看”顾名思义就是找出相关联的东西,这个连连看在网上基本是用在小游戏中,就是找出相同的两样东西,在一定的规则之内可以做为相关联处理。“连连看”的发展经历了从桌面游戏、在线游戏、社交游戏三个过程。
10、 游戏“连连看”是源自台湾的桌面小游戏,自从流入大陆以来风靡一时,也吸引众多程序员开发出多种版本的“连连看”。这其中,顾方编写的“阿达连连看”以其精良的制作广受好评,这也成为顾方“阿达系列软件”的核心产品。并于2004年,取得了国家版权局的计算机软件著作权登记证书。随着Flash应用的流行,网上出现了多种在线Flash版本“连连看”。如“水晶连连看”、“果蔬连连看”等,流行的“水晶连连看”以华丽界面吸引了一大批的女性玩家。2008年,随着社交网络的普及和开放平台的兴起,“连连看”被引入了社交网络。“连连看”与个人空间相结合,被快速的传播,成为一款热门的社交游戏,其中以开发者Jonevey在Ma
11、nyou开放平台上推出的“宠物连连看”最为流行。1.1.2 游戏规则 连连看游戏规则简单,就是在游戏界面中找到两个相同的图片,用不超过3根直线能够连接起来,就可以成功消除图片,得到分数,获得时间奖励,在规定时间内将图片全部消除,便获得胜利。1.2 游戏功能1.2.1 美观大气的界面本连连看游戏采用蓝色背景作为主色调,界面简洁大方,按钮及提示框排布合理,便于玩家的操作。1.2.2 背景音乐的添加只要打开游戏,游戏的背景音乐就缓缓的流露出来,滋润心田,选择相应的按钮后,还会有提示音,成功连线消除图片后能播放消除的提示音。1.2.3 奖励时间的设置玩家成功消除一对图片后,对应的时间进度条就会增加一定
12、的奖励时间,来鼓励玩家消除。1.2.4 提示功能当玩家陷入困境,不知道怎么消除图片,继续游戏时,提示按钮可以帮助他成功消除当前的图片,但是提示的次数有限,用完不再生效。1.2.5 僵局的重置由于游戏的图片生成是随机的,因此,在消除到一定阶段的时候,可能会出现有图片但是不满足消除规则的情况,重排的按钮可以实现图片的重新加载,从而能够再次消除。1.2.6 得分记录、难度为了提高玩家的游戏的积极性,以及为了保证游戏的完整性,游戏将统计玩家的得分情况,消除一对图片,就会得到相应的分数,以数据反应玩家的游戏完成进展。同时为了给游戏增加一些可变因数,玩家在成功完成一轮游戏后,难度会增加,难度增加反应到游戏
13、中就是缩短了一轮游戏的时间,但是图片的数量没有改变,这就无形中增添了游戏的可玩性。1.2.7 开始、重新开始、退出开始,重新开始,退出等按钮实现相应的游戏控制。1.3 游戏设计的主要工作1.3.1 游戏设计需要解决的问题开始制作游戏时,主要要解决的问题有以下几个方面:如何设置整个游戏的界面;如何控制连连看游戏中随机图片的生成且每种图片必须为偶数个;游戏开始后,判断鼠标两次点击的图片能否消去,即图片是否相同且图片之间路径的判断;如何判断游戏是否结束以及输赢问题等。1.3.2 游戏设计需要使用的算法针对游戏中最核心的两个问题,1连连看游戏中随机图片的生成且每种图片必须为偶数个,2图片是否相同且图片
14、之间路径的判断,我们需要使用合适的算法来解决这两个棘手的问题。1.图片成对出现而且随机,为了保证成对,我们可以在存放的时候按照顺序成组来存放,保证组的数量是偶数就可以实现,但是同时又存在一个问题,图片在哪里存放,怎么引用图片,为了简化图片的存放,结合连连看的表格形式,这里我们应用二维数组、采用转化的原则,将图片依次编号和二维数组对应,数组中的数字是0表示为空白,大于0的代表对应的图标编号,这样图标就可以容易替换成任何的图片或者文字,这就很好的解决了图片的按组存放规则;接下来还需要解决一个问题就是如何将图片的顺序打乱,这就需要应用到关键方法随机函数,通过随机函数和对换的思路,我们可以将图片成功的
15、随机排列,基本解决了随机性的问题。2.图片是否相同且图片之间路径的判断,这是连连看中最重要和最基础的部分,我们主要采用分类判别的方法,这其实是一种递归的算法,把复杂的问题按照层次剥离出来,每次简化一个步骤,就是递归的实现过程,我们将连连看图片的位置归类,总结出3个类别,即通过0,1,2个转角连接,0个转角是直连的方式,是递归的第一步,1个转角的形式可以转化为两次直连的方式判断,2个转角同样可以转化为1次1个转角,1次0个转角的判断。这样图片的位置模式大致就清晰了,1,2转角均可以用0个转角解决,递归的方式简单易行,便于理解,思路层次分明。其他的问题均是围绕这两个问题产生的,由此可以这两个问题的
16、重要性以及良好算法设计的必要性。1.3.3 游戏设计创新点1.游戏规则创新,当玩家在成功消除图片之后,会给予时间的奖励,时间进度条增加,增强了玩家消除的积极性。2.提示功能,当玩家无思路的时候,可以通过该功能,解决玩家的困惑。3,重置功能,当游戏陷入僵局的时候,重置功能可以成功解除僵局,使游戏继续进行。4.音乐,游戏在开始后,背景音乐就进行播放,当鼠标点击图片的时候,配对的点击音乐也进行播放,用于提示。5.时间进度条,游戏开始以后,时间以进度条的方式提示,相比原来数字的提示更加清晰。6.图片消除算法,算法设计合理、思路清晰,涵盖全部情况,采用递归的方式便于游戏编码的实现。2. 系统分析2.1
17、技术可行性分析2.1.1 算法分析连连看程序的关键是判断用户点击两个图案能否消除,两张图片消除的条件有两个:1.图片相同2.图片间连线的转角数不能超过两个(即用不超过三根直线连接两张图片)根据判断能否通过不超过三根直线连接两张图片的原则,有两种实用的算法,下面是讨论方案:1.分类判断法:这里实质上是一种递归的思想,要判断图片A与图片B能否通过一条有N个转角的路径相连,可以转化为判断能否找到图片C,C与A能直线相连,且C与B能用一条有N-1个转角的路径相连。若这样的图片C存在,那么A与B就可以通过一条有N个转角的路径相连。分类法一:根据转角数不得超过2个的规则,我们可以分为转角数分别为0个、1个
18、、2个这三种情况分别讨论。a) 0转角连通(直线连通):两个图片的纵坐标或横坐标相等,且两者连线间没有其他图案阻隔。(红色块为欲消除块)如图2-1图2-1b) 一个转角连通:其实相当于两个图片划出一个矩形,这两个图片是一对对角顶点,另外两个顶点如果可以同时和这两个棋子直连,那就说明可以一折连通。(红色块为欲消除块,黑色代表其他阻拦块,圆圈代表折点)如图2-2图2-2c) 两个转角连通: 判断图片A与图片B能否经过有两个转角的路径连通实质上可以转化为判断能否找到一个点C,这个C点与A可以直线连通,且C与B可以通过有一个转角的路径连通。这样就将问题转化为了0个转角和1个转角的情况,0个转角可以直接
19、相连,1个转角可以转化为以C点和B点为对顶角的矩形中寻找另外两个对顶角之一,看能否分别和B、C相直连。若能找到这样一个C点,那么A与B就可以经过有两个转角的路径连通 。判断是否经两个转角连通的算法需要做两个方向上的扫描:水平扫描和垂直扫描。水平扫描。为了判断A,B能否通过2个转角连通,则从A开始在水平方向上向左右扫描,并判断经过的点能否与B点经过1个转角连通。显然C点能与B点经1个转角连通,故A,B能经2个转角连通。(红色块为欲消除块,黑色代表其他阻拦块,黄色c代表折点,绿色代表折线),如图2-3图2-3垂直扫描。为了判断A,B能否通过2个转角连通,则从A开始在垂直方向上下扫描,并判断经过的点
20、能否与B点经过1个转角连通。显然C点能与B点经1个转角连通,故A,B能经2个转角连通(红色块为欲消除块,黑色代表其他阻拦块,黄色c代表折点,绿色代表折线),如图2-4图2-42.分类法二:也可以如下类别进行分析连连看的消除算法:a) 两张图片左右相邻,如图2-5图2-5b) 两张图片上下相邻,如图2-6图2-6c) 两张图片在同一行,它们中间相隔且没有其它图片遮挡,如图2-7图2-7两张图片在同一行,它们中间相隔且有其它图片遮挡,但是它们存在不超过2个转弯的路径,如图2-8图2-8d) 两张图片在同一列,它们中间相隔且没有其它图片遮挡,如图2-9图2-9两张图片在同一列,它们中间相隔且有其它图
21、片遮挡,但是它们存在不超过2个转弯的路径,如图2-10图2-10e) 两张图片相邻,但是它们存在不超过2个转弯的路径,如图2-11图2-11f) 两张图片不相邻,但是它们存在不超过2个转弯的路径,如图2-12图2-12总结:分类法一和分类法二均涵盖了连连看图片全部位置情况,可以实现准确实现连连看的消除功能,但是分类二的细节太多,颗粒度太小,分类一的分支清晰明确,颗粒度合适,因此在这里我选择了分类法一。2.以转角数为基准的广度优先搜索法:这种算法参考编程之美这种算法的动机:若能将所有与图片A经过不多于2个转角的路径相连的图片找出来,加入一个集合S中。那么判断B与A能否相连只需判断B是否存在于集合
22、S中即可。采用广度优先搜索算法可以方便的实现这一构想。算法的思路如下: (1)定义空集S与T,将A加入集合S (2)找出所有与A能直接相连的点,将其加入集合S (3)找出与集合S中的点能直接相连的点,加入集合T,然后将T中所有元素加入到集合S中,清空集合T (4)找出与集合S中的点能直接相连的点,加入集合T,然后将T中所有元素加入到集合S中 (5)若B在集合S中,则A,B可以相连。否则A,B不能相连模仿图论中广度优先搜索的算法,可以写出以转角为基准的广度优先搜索的伪代码如下(实际编程实现这一算法时可以采取优化措施,不一定要搜索出所有与A转角不超过2的点。):/判断图片A与图片B能否经过不多于2
23、个转角的路径相连的算法boolMatch( Picture A,Picture B ) Set S ;/已经搜索到的点的集合,集合S中每个元素与A都可以通过不多于个转角的路径连通 Set T ;/临时存储搜索到的点 将A加入到S中 intcrossNum = 0 ;/用于记录当前搜索到节点的最大转角数 While( B 不在S 中& crossNum 3 ) for( S 中每个元素e ) 将所有与e能直线连通的点加入到集合T中 T中的所有元素加入到S中 crossNum + ; if( B 在S中) returntrue; else returnfalse;广度优先搜索算法,本质上是一种建立
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 连连 游戏 设计 实现
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。