




免费预览已结束,剩余22页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
兰州工业高等专科学校毕业设计(论文)任务书毕业设计(论文)题目基于JAVA的连连看游戏设计与实现课题内容性质软件开发课题来源性质教师收集的结合生产实际的课题设计/论文校内(外)指导教师职 称工作单位及部门联系方式讲师软件工程系软件技术教研室一、题目说明(目的和意义): 游戏产业作为现代电脑电子技术的产物,正在以其独特的魅力在全世界的娱乐领域占据主流位置,我们在承认广大娱乐网民的选择空间狭小的同时,也必须明确的一点就是游戏本身所具有的强大的吸引力。游戏的吸引力主要在于,它在让玩家打发时间的同时,可以让人在紧张工作之余带来最大程度的放松,也可以增进人们之间的交流、沟通,通过游戏还可以认识更多的朋友,也可以到达跨省、跨市、甚至跨国间人们互相娱乐的目的,从而满足了人们休闲的需要。而且游戏产业促动高科技技术不断升级,作为经济增长的一大支撑点,已经成为经济腾飞的“第四产业”。 现在小游戏、网页游戏越来越受网民欢迎,除了玩的方法简单外(不像其他游戏还需要注册下载繁琐过程),很多游戏不乏经典。由于手机互联网的不断发展,传统网游已经不能跟上时代的潮流,而网页游戏无需客户端的特性,决定了将来会是Web游戏主宰网游市场。作为最基本的网页游戏之一,“连连看”游戏的设计与实现可以积累开发网页游戏的经验,完善开发思路,为以后更高层次上的网页游戏开发,打下坚实的基础,更好的推动网页游戏的发展。 正是因为如此,通过本次毕业设计,让学生掌握如何制作一个游戏软件,以及制作游戏软件的整个流程,制作游戏软件的步骤,让学生熟悉项目开发的完整过程,为即将到来的就业工作打下基础。另外也通过本次设计将三年来所学的专业知识和其他方面的知识融入到实际应用中,在实际运用中学习和掌握Java程序开发的全过程,进一步熟悉掌握Java程序设计语言的基础内容、基本技能和方法,同时培养学生进行分析问题、解决问题的能力;培养学生进行设计分析、设计方法、设计操作与测试、设计过程的观察、理解和归纳能力的提高。二、设计(论文)要求(工作量、内容): 【设计内容】: 通过JAVA编一个连连看程序,通过鼠标点击把两张一样的牌,用三根以下的线连起来使其消掉。程序实现以下几个功能:实现个人小型休闲游戏连连看;开始游戏后,随机生成图片(或字符)位置,要求是至少两两相同,位置随机打乱;游戏规则是在一定时间内将相同字符或图片的牌连接,但要满足只能至少单边无阻碍呈直线趋势连接,否则视为无效,若连接一对成功就消失于界面,继续游戏,直到游戏结束或时间用完。游戏过程中,遇到困难难以寻找下一符合要求的一对牌,可按左下按钮重置重新排列,方可继续游戏。可点击“退出游戏”按钮,结束游戏。游戏中可使用道具。可在以下内容中进行选择,也可根据实际情况,自选内容,但需事先和指导教师进行沟通。参考题目:Java编程实现贪吃蛇游戏,打地鼠游戏。 【设计要求】:系统能够提供友好的用户界面,使操作人员的心情放松;系统具有良好的运行效率,能够得到快速发现自我的目的;系统应有良好的可扩充性,可以容易的转入其它系统应用;平台的设计具有一定的灵活性。 【实施步骤】:熟悉JAVA语言、UltraEdit-32开发工具、Eclipse开发工具占工作量的5%游戏框架的搭建(占工作量的15%);菜单的制作(占工作量的10%);UI的设计(占工作量的10%);算法的设计(占工作量的15%);算法的实现(占工作量的30%);系统调试:各小组进行功能整合,由小到大地调试功能模块,完成整个系统要求。占工作量的10%功能完善和改进:做最后的修缮和调整,使得功能全面、运行流畅、贴近实际运行环境。占5% 【毕业论文】: 围绕“连连看”游戏的分析、设计与实现,撰写论文,论文不少于30000字。 论文撰写规范参考附件:兰州工专论文撰写规范(附件一).doc 【提交内容】: “连连看”游戏的可执行文件和源码。 毕业论文的电子稿和打印稿,答辩PPT。 【注意事项】: 毕业设计的时间安排根据时间表,最后一周,检查程序、交毕业设计论文;交毕业设计系统Powerpoint电子显示文稿;按要求将毕业设计论文装订成册。 指导老师打分方案:毕业设计成绩考勤*30%+论文*40%+技术实现*30%。 每周考勤一次,有特殊情况需向指导教师请假。 具体论文上交时间、论文答辩时间以系办通知为准。 三、进度表日 期内 容第15周查阅文献,分析功能,确定基本思路和设计内容,确定需求分析。开发环境的搭建;第16周设计界面;图片的选取与随机生成;单击控件的事件处理;时间控制;其他控件与功能;第17周算法路径的实现;得分设置;过关设置;第18周完成系统,做功能修缮和调整,编写用户手册。第19周第20周按要求完成论文,并上交论文,制作电子文档,为答辩做准备。完成日期2011年1月6日答辩日期2011年2月21日四、主要参考文献、资料、设备和实习地点及翻译工作量: 【设备】:实践基地资源、个人设备资源及实习地点的设备资源,按照设计要求进行配置和安装。 【设计环境】: 软件:Windows XP,JDK6.0以上版本,Eclipse5.0以上版本。 硬件:以软件安装要求为准则,在设计的过程中确保程序调试的流畅。 【实习地点】:计算机实践基地、学生选定的调式地点与学生自己考察的外部地点相结合。 【翻译工作量】:对论文标题、关键字、摘要进行英文翻译。 【参考文献】: 1 张明新,周耿烈.Java语言程序设计. 重庆:重庆大学出版社,2004. 2 周晓聪,李文军,李师贤.面向对象程序设计与Java语言. 北京:机械工业出版社,2004. 3 Bruce Eckel.Java编程思想.北京:机械工业出版社,2007. 4 James Cohoon,Jack Davidson.Java程序设计. 北京:清华大学出版社,2005. 5 Steven Holzner.Java技术内幕. 北京:机械工业出版社,2002. 6 张洪斌.Java程序设计百事通. 北京:清华大学出版社,2001. 7 夏先波.Java JDK实例宝典. 北京:电子工业出版社,2007. 8 吴其庆.Java程序设计经典教程. 北京:冶金工业出版社,2005. 9 耿祥义,张跃平.Java 2 实用教程. 北京:清华大学出版社,2007. 10 蔡勇,姜磊,马宁,倪文志.Java 2 程序设计基础教程与上机指导. 北京:清华大学出版社,2005. 11 林建素,孟康健.Eclipse开发学习笔记(第1版).北京:电子工业出版社. 2008.4 12 李松林,陈华清,任鑫.Eclipse宝典(第1版).北京:电子工业出版社. 2007.9指导教师签字教研室主任签字主管系领导签字 年 月日 年 月日 年 月日 注:本任务书要求一式两份,一份系部留存,一份报教务处实践教学科。摘要 游戏发展至今已经有30多年历史,在这个短暂的时期里,随着硬件水平的提高,游戏开发新技术层出不穷,经典游戏比比皆是。大部分的人一听到连连看游戏,通常就会想到这是一个小游戏。 连连看游戏,是指在一个区域内,分布着许多不同的图片,通过点击两张相同的图片并符合一定的规则消除它们的一个游戏。我们最常见的是在游戏大厅里的连连看,网络上也有许多各式各样的单机版连连看游戏。在游戏的过程中,可以考虑下如何使用自己掌握的程序去实现游戏的效果,并尝试去开发属于自己的连连看,这是一件十分惬意的事情。在本章中,我们将详细的教大家如何使用Java去开发一款属于自己的单机连连看。 本游戏采用JAVA语言开发,以MyEclipse为开发平台。游戏主界面是基于GUI(图形用户界面)的开发,使得游戏界面简单清晰。并调用了其中的一些函数,完成了事件的触发功能。希望通过这次开发设计出的连连看小游戏,给大家的生活带来一点乐趣。 游戏通过定义动态的二维数组,根据一定的算法实现规定的路径判断。 关键词:连连看、小游戏、JAVA、GUI、数组 Abstract Game development has 30 years of history, in this short period, along with the hardware level, game development new technology emerge in an endless stream, classic games meet the eye everywhere. Most of the people hear Lianliankan game, they usually think this is a small game. Lianliankan game, refers to a region, the distribution of many different pictures, click through to two cards of the same picture and conform to certain rules to eliminate them in a game. It is most common in game hall Lianliankan, the network also has a lot of every kind of stand-alone edition game. In the course of the game, can consider how to use their mastery of the program to achieve game effects, and try to develop their own look again and again, this is a very happy thing. In this chapter, we will detail the teach you how to use Java to develop a belongs to own stand-alone lianliankan. The game using JAVA language development, take MyEclipse as the development platform. The game s interface is based on the GUI graphical user interface development, which makes the game interface simple and clear. And call some of these functions, completed the event trigger function. Hope that through this design Lianliankan game, for everyone to bring to life a little fun. The game through the definition of the dynamic two-dimensional array, according to certain provisions of the path algorithm to determine. Key words: Lianliankan, game, JAVA, GUI, array目录摘要IV第一章 绪论- 1 -一 游戏产业介绍- 1 -二 游戏的发展概况- 1 -第二章 连连看游戏描述- 2 -一 游戏规则描述- 2 -二 游戏设计的目的- 2 -三 游戏可行性论证- 2 -第三章 连连看游戏的分析与设计- 3 -一 游戏的设计- 3 -1 功能设计- 3 -2 游戏模块设计- 3 -3 算法模块- 4 -4 界面显示模块- 4 -5 菜单控制模块- 4 -6 地图设计- 5 -7 算法设计- 5 -8 类的设计- 7 -1Control.java 监听器类。- 7 - 7 -2LoadAndSave.java 游戏数据部分。- 7 -3Model.java 驱动类。- 7 -4GamePanel.java 绘制类。- 7 -5ImageLoader.java 图片加载器。- 9 -6MainFrame.java 主窗体绘制。- 9 -9 算法设计- 9 -二 主要问题- 11 -三 技术要求- 11 -四 设计要求- 11 -1 开发环境- 11 -2 理论基础- 11 -3 开发目标- 11 -第四章 游戏运行及测试分析- 12 -一 程序运行情况- 12 -二 测试计划及分析- 15 -1 检验的先后顺序- 15 -2 程序异常处理- 15 -结论- 16 -致谢- 17 -参考文献- 17 -第一章 绪论一 游戏产业介绍游戏产业作为现代电脑电子技术的产物,正在以其独特的魅力在全世界的娱乐领域占据主流位置,我们在承认广大娱乐网民的选择空间狭小的同时,也必须明确的一点就是游戏本身所具有的强大的吸引力。游戏的吸引力主要在于,它在让玩家打发时间的同时,可以让人在紧张工作之余带来最大程度的放松,也可以增进人们之间的交流、沟通,通过游戏还可以认识更多的朋友,也可以到达跨省、跨市、甚至跨国间人们互相娱乐的目的,从而满足了人们休闲的需要。而且游戏产业促动高科技技术不断升级,作为经济增长的一大支撑点,已经成为经济腾飞的“第四产业”。 现在小游戏、网页游戏越来越受网民欢迎,除了玩的方法简单外(不像其他游戏还需要注册下载繁琐过程),很多游戏不乏经典。由于手机互联网的不断发展,传统网游已经不能跟上时代的潮流,而网页游戏无需客户端的特性,决定了将来会是Web游戏主宰网游市场。作为最基本的网页游戏之一,“连连看”游戏的设计与实现可以积累开发网页游戏的经验,完善开发思路,为以后更高层次上的网页游戏开发,打下坚实的基础,更好的推动网页游戏的发展。二 游戏的发展概况 游戏“连连看”顾名思义就是找出相关联的东西,这个连连看在网上基本是用在小游戏中,就是找出相同的两样东西,在一定的规则之内可以做为相关联处理。“连连看”的发展经历了从桌面游戏、在线游戏、社交游戏三个过程。 游戏“连连看”是源自台湾的桌面小游戏,自从流入大陆以来风靡一时,也吸引众多程序员开发出多种版本的“连连看”。这其中,顾方编写的“阿达连连看”以其精良的制作广受好评,这也成为顾方“阿达系列软件”的核心产品。并于2004年,取得了国家版权局的计算机软件著作权登记证书。随着Flash应用的流行,网上出现了多种在线Flash版本“连连看”。如“水晶连连看”、“果蔬连连看”等,流行的“水晶连连看”以华丽界面吸引了一大批的女性玩家。 2008年,随着社交网络的普及和开放平台的兴起,“连连看”被引入了社交网络。“连连看”与个人空间相结合,被快速的传播,成为一款热门的社交游戏,其中以开发者其中以开发者Jonevey在Manyou开放平台上推出的“宠物连连看”最为流行。 第二章 连连看游戏描述 近年来,Java作为一种新的编程语言。以其简单性、可移植性和平台无关性等优点,得到广泛的应用,特别是Java与万维网的完美结合,使其成为网络编程和嵌入式编程领域的首选编程语言。一 游戏规则描述 1、概要:玩家可以将2个相同图案的牌连接起来,连接不多于3根直线,就可以成功的将两个图片消除。 2、操作:第一次使用鼠标点击游戏界面中的牌,该牌此时为“被选中”以特殊方式显示;再次以鼠标点击其他牌,若该牌与被选中的牌图案相同,且把第一个牌到第二个牌连起来,中间的直线不超过3根,则消掉这一对牌,否则第一个牌变为未被选中状态,而第二张牌变成选中状态。 3、胜利条件:将游戏界面上的牌全部消除掉。 4、失败条件: 到规定的时间,界面上仍然有未消除的牌。二 游戏设计的目的 通过本次毕业设计,让我们掌握如何制作一个游戏软件,以及制作游戏软件的整个流程,制作游戏软件的步骤,让学生熟悉项目开发的完整过程,为即将到来的就业工作打下基础。另外也通过本次设计将三年来所学的专业知识和其他方面的知识融入到实际应用中,在实际运用中学习和掌握Java程序开发的全过程,进一步熟悉掌握Java程序设计语言的基础内容、基本技能和方法,同时培养学生进行分析问题、解决问题的能力;培养学生进行设计分析、设计方法、设计操作与测试、设计过程的观察、理解和归纳能力的提高。 1、主要是能通过开发“连连看”这个小游戏,学会Java程序开发的环境搭建与配置,并提高自己Java程序设计编程的实际能力。通过这次。 2、进一步熟悉掌握Java程序设计的基础内容,如用户图形界面设计(GUI)、Java多线程编程等。 3、大体了解怎样用Java来编写小游戏,增强我们实践能力和创新精神的综合培养。三 游戏可行性论证 “连连看”游戏是一个经典的游戏,它因操作简单、娱乐性强而广受欢迎。我们通过所学的JAVA,利用MyEclipse设计一个操作简单、界面美观、功能齐全的“连连看游戏”。通过本游戏的开发,达到学习Java技术和熟悉软件开发流程的目的。 这个游戏是用图形界面实现的,通过编译解释后,出现一个图形界面。界面上方有一行菜单栏,点击菜单栏上的按钮,出现下拉菜单,选择开始,进入游戏界面,游戏界面是由若干个小方格组成的,每个小方格有一个图标,点击其中相同的图标,若它们符合算法要求就会消失,且游戏期间有一定的时间限制。游戏还设有炸弹、退出、帮助的功能,方便游戏操作。 第三章 连连看游戏的分析与设计一 游戏的设计1 功能设计 1、用户可以通过点击菜单中的“开始游戏”选项,开始新游戏程序。程序会载入图片,并通过特定的算法排列图片,并标记图片,以便判断图片是否相同。记录图片坐标,以方便计算图片是否可以相连。确定图片大小,以确定用户点击的是那张图片。 2、用户选择两张一样的图片,通过鼠标进行选取,如果用户两次点击的图片不相同,那么系统认为用户没有点(鼠标记数归 0),以完成用户以后的选取工作。如果用户选择的是相同的图片,那么系统会消除这两张图片,并使鼠标记数为 0,并消除这两张图片的标记,使里面的图片被标记在外面。以便用户可以进行以后的选择。 3、用户也可使通过使用“刷新”功能进行图片重新排版。 4、用户点击提示系统将通过连线,提示用户下一步可消除的图片 5、用户点击演示,系统自动完成游戏2 游戏模块设计 根据对“连连看”游戏的分析,该游戏可分为三个模块:算法模块、界面显示模块、菜单控制模块。如下图3-1所示:图 3-1游戏流程模块图3 算法模块 1.图片路径处理设计 2.图片的产生设计4 界面显示模块 1.游戏界面设计 2.游戏过关、失败的设计5 菜单控制模块 1. 开始游戏 2. 重新开始 3. 刷新 4. 提示 5.演示 6.游戏难度选择 如下图3-5所示 6 地图设计 地图的设计是采用GUI编程的网格布局,定义一个八行八列的网格布局,使用16个数字然后随机产生四个数字,用二维数组把它们打乱放到八行八列的网格布局中,注意的是二维数组的下标要和网格布局是的行、列数相同。7 算法设计 在检验两个方块能否消掉的时候,我们要让两个方块同时满足两个条件才行,就是两者配对并且连线成功。如图4-3所示 分 3 种情况:从下面的这三种情况,我们可以知道,需要三个检测,这三个检测分别检测一条直路经。这样就会有三条路经。若这三条路经上都是空按钮,那么就刚好是三种直线(两个转弯点)把两个按钮连接起来了。 1、相邻 2、若不相邻的先在第一个按钮的同行找一个空按钮。1.找到后看第二个按钮横向到这个空按钮所在的列是否有按钮。2.没有的话再看第一个按钮到与它同行的那个空按钮之间是否有按钮。3.没有的话,再从与第一个按钮同行的那个空按钮竖向到与第二个按钮的同行看是否有按钮。没有的话路经就通了可以消了 3、若2失败后,再在第一个按钮的同列找一个空按钮。1.找到后看第二个按钮竖向到这个空按钮所在的行是否有按钮 2.没有的话,再看第一个按钮到与它同列的那个空按钮之间是否有按钮。3.没有的话,再从与第一个按钮同列的那个空按钮横向到与第二个按钮同列看是否有按钮。没有的话路经就通了,可以消了。 若以上三步都失败,说明这两个按钮不可以消去。 具体判断流程见下图4、图片成对加载并打乱 将图片成对的显示在场景中,并打乱主要用的是Map类。在该类中,用了一个数组以数字标记的形式来记录加载的图片是哪种图片,在每次加载图片的时候是一张图片连续加载两次,以保证加载图片成对。然后用数组的随机方法将数组打乱。5、判断两图是否能够相连 两图能相连的所有情况:8 类的设计在设计连连看小游戏是,要编写6个Java源文件 :Control.java , LoadAndSave.java , Model.java , GamePanel.java , ImageLoader.java , MainFrame.javaControl.java 监听器类。主要用于接收用户操作时发出的指令以及中转发送。LoadAndSave.java 游戏数据部分。 主要用于存储用户得分情况,以及载入时加载图片的算法 Model.java 驱动类。 用于处理接收到的用户动作指令,以及初始化时用到的一切算法。如:设置游戏难度,图片可消除判断等。GamePanel.java 绘制类。 用于游戏是绘制选中时的边框,和连接两个相同图片的连线。 public void showPathfinal Object obj new Threadnew Runnable ArrayList points ArrayList obj; ArrayList shapes new ArrayList; int step 30; public void run / 添加起点矩形 /0.0; / 添加终点矩形 /.points.size - 1; / 添加直线 for int i 1; i points.size; i+ Point p1 getCentermatrixToRectpoints.geti - 1; Point p2 getCentermatrixToRectpoints.geti; if p1.x p2.x int distance p2.y - p1.y; for int j 0; j Math.absdistance; j + step shapes.addnew Line2D.Doublep1, new Pointp1.x, p1.y + distance / Math.absdistance * j; else if p1.y p2.y int distance p2.x - p1.x; for int j 0; j Math.absdistance; j + step shapes .addnew Line2D.Doublep1, new Point p1.x + distance / Math.absdistance * j, p1.y; shapes.addnew Line2D.Doublep1, p2; Graphics2D g2 Graphics2D getGraphics; float dash 4F ; g2.setStrokenew BasicStroke2.0F, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 11.0F, dash, 1.0F; for int index 0; index shapes.size; index+ try Thread.sleep10; catch InterruptedException e e.printStackTrace; for int pre 0; pre index; pre+ if pre 2 g2.setColorColor.BLUE; else g2.setColorColor.RED; g2.drawshapes.getpre; .start; 效果如图: ImageLoader.java 图片加载器。 用于加载库中的图片。MainFrame.java 主窗体绘制。 所有游戏中可见窗体的绘制。项目层次结构图:9 算法设计图片消除算法for int i 0; i map.length; i+for int j 0; j map0.length; j+ Rectangle rect matrixToRecti, j;if mapij 0continue;/.ImageOfmapij, rect.x, rect.y, null;图片加载算法public class ImageLoader private static BufferedImage cursorImage;private static BufferedImage icon;private static final BufferedImage imagesnew BufferedImageModel.CARD_NUMBERS+1;public static BufferedImage getCursorImageifcursorImagenull/获得图片的编号try URLClassLoader urlLoaderURLClassLoader /.ClassLoader;URL urlurlLoader.findResourceimages/cursor.gif;cursorImageImageIO.readurl;catch Exception e e.printStackTrace;return cursorImage;public static BufferedImage getIconImageificonnull/加载图标try URLClassLoader urlLoaderURLClassLoader /.ClassLoader;URL urlurlLoader.findResourceimages/.png;iconImageIO.readurl;catch Exception e e.printStackTrace;return icon;public static BufferedImage getImageOfint indexifimagesindexnull/在已编号处加载图片try URLClassLoader urlLoaderURLClassLoader /.ClassLoader;URL urlurlLoader.findResourceimages/+index+.gif;imagesindexImageIO.readurl;catch IOException e e.printStackTrace;return imagesindex;二 主要问题 开始制作游戏时,主要解决的问题有以下几个方面: 1、如何设置整个游戏的界面。 2、如何控制连连看游戏中随机图片的生成切每种图片必须为偶数个;游戏开始后,判断鼠标两次点击的图片能否消去,即图片是否相同且图片之间路径的判断。 3、如何判断游戏是否结束以及输赢的问题。三 技术要求 本游戏软件可以在大多数计算机上运行,游戏中能正确判断鼠标两次点击的图片是否可以消去、能正确判断游戏是否已经结束。四 设计要求1 开发环境在windows XP系统下,JAVA 程序设计语言及相应的集成开发环境,利用MyEclipse实现。开发平台jdk1.6。2 理论基础1、熟悉JAVA语言基础2、GUI编程 GUI 是 Graphical User Interface 的缩写,图形化用户界面 布局管理 FlowLayout(流式布局管理器) 从左到右的顺序排列。 BorderLayout(边界布局管理器) 东,南,西,北,中 GridLayout(网格布局管理器)事件处理机制 事件:用户对组件的一个操作。 事件源:发生事件的组件。 监听器:我们需要处理某个事件,就需要在发生事件的组件上添加监听器;事件处理器:监听器中的方法。监听器被添加在组件上之后,组件上发生了对应事 件就会执行指定方法。动作事件,ActionEvent,在某一组件上发生了定义好的动作,例如按钮上鼠标点击 或按空格,菜单上鼠标点击或按回车等。MyEclipse的操作。3 开发目标系统能够提供友好的用户界面,使操作人员的心情放松;系统具有良好的运行效率,能够得到快速发现自我的目的;系统应有良好的可扩充性,可以容易的转入其它系统应用;平台的设计具有一定的灵活性。第四章 游戏运行及测试分析一 程序运行情况 点击菜单中的开始游戏后的界面,连连看游戏规则很简单,就是点中两个互相匹配并且可以通过不多于两个折点的折线连相同的图片,然后消去。下图是开始游戏后的界面效果选择游戏难度(图)点击开始,开始当前难度游戏,如果不选择难度,则难度1到9随机点击刷新则所有图片随机改变位置其总数不变。提示,可以根据算法随机提示一组可以消去的图片。点击演示,电脑将自动完成消除,每一步都有边框以及连线显示,直到所有方块消除完毕图片由用户消除完毕,则如下图显示 由于用户每次只能消除一对图形,即只会用到一个最短路径,但由于实现并不知道用户会选择哪一对图形,所以需要事先计算出所有可能的最短路径并保存起来。此外,采用这种方法的话似乎每次用户消去一对相同图像之后都需要重新计算出当前所有可能被连接的相同图形之间最短路径,这是因为当某些图像被消去之后可能会产生很多新路径,而我们又不能确定这些空出来的格子到底能够影响哪些路径,所以就只好都重新计算一遍。 二 测试计划及分析1 检验的先后顺序 在检验两个方块能否消掉的时候,我们要让两个方块同时满足两个条件才行,就是两者配对并且连线成功。所以,这里应该先检验配对,如果该条件不成立的话,就不要再进行连线检查了,这样可以避免很多不必要的复杂运算。当然,如果你在做这个游戏的时候,配对规则不够如此简单的话,那么就看哪个算起来麻烦就把它放在后面。2 程序异常处理 本程序没有涉及到程序的异常处理,只有关于“死锁”问题,本质上还是判别两个格子是否可以消去的问题。最直接的方法就是,对于游戏中尚未消去的格子,两两都计算一下,它们是否可以消去。此外,从上面的广度优先搜索可以看出,我们每次都是扩展出起始格子Ax1,y1能够到达的格子。也就是说,对于每一个格子,我们可以调用一次上面的扩展过程,得到所有可以到达的格子,如果这些格子中有任意一个跟起始格子的图形一致,则它们可以消去,目前游戏我还没有发现“死锁”状态。结论 “连连看”游戏的基本功能都已经实现了,其中很多变量之间数据的传递都很复杂,要搞不明白
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025教师资格经典例题附完整答案详解【考点梳理】
- 2025年三种人考试常考点试卷【必刷】附答案详解
- 2025年事业单位工勤技能考试自我提分评估(能力提升)附答案详解
- 2025咨询工程师高频难、易错点题含完整答案详解【名师系列】
- 2025年执业药师之《西药学专业一》题库检测试卷【网校专用】附答案详解
- 2023年度计算机二级模拟试题及完整答案详解(易错题)
- 2024-2025学年度资料员之资料员基础知识自我提分评估附参考答案详解【完整版】
- 2025自考专业(护理)自我提分评估附参考答案详解(黄金题型)
- 2025年江苏省高邮市中考数学考前冲刺练习【全优】附答案详解
- 2024年自考专业(计算机网络)全真模拟模拟题附答案详解【B卷】
- python程序设计-说课
- 虫害防治工作总结
- 【自考复习资料】05175税收筹划(重点知识汇总)
- 肺结核的临床诊断和治疗管理指南
- 大学美育(第二版) 课件 第五单元:书法艺术
- 计算机应用基础(Windows10+Office2016)(第3版) 课件 项目3、4 Windows10操作系统、管理计算机中的资源
- 《种子包衣技术》课件
- 《矿区水文地质工程地质勘探规范》水文地质单元及侵蚀基准面划分的探讨
- 高等计算机系统结构课件
- 海南自贸港测试题库(195道)
- 我的家乡威海荣成宣传介绍课件
评论
0/150
提交评论