基于java的连连看游戏设计毕业论文_第1页
基于java的连连看游戏设计毕业论文_第2页
基于java的连连看游戏设计毕业论文_第3页
基于java的连连看游戏设计毕业论文_第4页
基于java的连连看游戏设计毕业论文_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGE20-毕业设计(论文)任务书一、题目说明(目的和意义):游戏产业作为现代电脑电子技术的产物,正在以其独特的魅力在全世界的娱乐领域占据主流位置,我们在承认广大娱乐网民的选择空间狭小的同时,也必须明确的一点就是游戏本身所具有的强大的吸引力。游戏的吸引力主要在于,它在让玩家打发时间的同时,可以让人在紧张工作之余带来最大程度的放松,也可以增进人们之间的交流、沟通,通过游戏还可以认识更多的朋友,也可以到达跨省、跨市、甚至跨国间人们互相娱乐的目的,从而满足了人们休闲的需要。而且游戏产业促动高科技技术不断升级,作为经济增长的一大支撑点,已经成为经济腾飞的“第四产业”。现在小游戏、网页游戏越来越受网民欢迎,除了玩的方法简单外(不像其他游戏还需要注册下载繁琐过程),很多游戏不乏经典。由于手机互联网的不断发展,传统网游已经不能跟上时代的潮流,而网页游戏无需客户端的特性,决定了将来会是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日四、主要参考文献、资料、设备和实习地点及翻译工作量:【设备】:实践基地资源、个人设备资源及实习地点的设备资源,按照设计要求进行配置和安装。【设计环境】:软件:WindowsXP,JDK6.0以上版本,Eclipse5.0以上版本。硬件:以软件安装要求为准则,在设计的过程中确保程序调试的流畅。【实习地点】:计算机实践基地、学生选定的调式地点与学生自己考察的外部地点相结合。【翻译工作量】:对论文标题、关键字、摘要进行英文翻译。【参考文献】:[1]张明新,周耿烈.Java语言程序设计.重庆:重庆大学出版社,2004.[2]周晓聪,李文军,李师贤.面向对象程序设计与Java语言.北京:机械工业出版社,2004.[3]BruceEckel.Java编程思想.北京:机械工业出版社,2007.[4]JamesCohoon,JackDavidson.Java程序设计.北京:清华大学出版社,2005.[5]StevenHolzner.Java技术内幕.北京:机械工业出版社,2002.[6]张洪斌.Java程序设计百事通.北京:清华大学出版社,2001.[7]夏先波.JavaJDK实例宝典.北京:电子工业出版社,2007.[8]吴其庆.Java程序设计经典教程.北京:冶金工业出版社,2005.[9]耿祥义,张跃平.Java2实用教程.北京:清华大学出版社,2007.[10]蔡勇,姜磊,马宁,倪文志.Java2程序设计基础教程与上机指导.北京:清华大学出版社,2005.[11]林建素,孟康健.《Eclipse开发学习笔记》(第1版).北京:电子工业出版社.2008.4[12]李松林,陈华清,任鑫.《Eclipse宝典》(第1版).北京:电子工业出版社.2007.9指导教师签字教研室主任签字主管系领导签字年月日年月日年月日注:本任务书要求一式两份,一份系部留存,一份报教务处实践教学科。摘要游戏发展至今已经有30多年历史,在这个短暂的时期里,随着硬件水平的提高,游戏开发新技术层出不穷,经典游戏比比皆是。大部分的人一听到连连看游戏,通常就会想到这是一个小游戏。连连看游戏,是指在一个区域内,分布着许多不同的图片,通过点击两张相同的图片并符合一定的规则消除它们的一个游戏。我们最常见的是在QQ游戏大厅里的QQ连连看,网络上也有许多各式各样的单机版连连看游戏。在游戏的过程中,可以考虑下如何使用自己掌握的程序去实现游戏的效果,并尝试去开发属于自己的连连看,这是一件十分惬意的事情。在本章中,我们将详细的教大家如何使用Java去开发一款属于自己的单机连连看。本游戏采用JAVA语言开发,以MyEclipse为开发平台。游戏主界面是基于GUI(图形用户界面)的开发,使得游戏界面简单清晰。并调用了其中的一些函数,完成了事件的触发功能。希望通过这次开发设计出的连连看小游戏,给大家的生活带来一点乐趣。游戏通过定义动态的二维数组,根据一定的算法实现规定的路径判断。关键词:连连看、小游戏、JAVA、GUI、数组AbstractGamedevelopmenthas30yearsofhistory,inthisshortperiod,alongwiththehardwarelevel,gamedevelopmentnewtechnologyemergeinanendlessstream,classicgamesmeettheeyeeverywhere.MostofthepeoplehearLianliankangame,theyusuallythinkthisisasmallgame.Lianliankangame,referstoaregion,thedistributionofmanydifferentpictures,clickthroughtotwocardsofthesamepictureandconformtocertainrulestoeliminatetheminagame.ItismostcommoninQQgamehallQQLianliankan,thenetworkalsohasalotofeverykindofstand-aloneeditiongame.Inthecourseofthegame,canconsiderhowtousetheirmasteryoftheprogramtoachievegameeffects,andtrytodeveloptheirownlookagainandagain,thisisaveryhappything.Inthischapter,wewilldetailtheteachyouhowtouseJavatodevelopabelongstoownstand-alonelianliankan.ThegameusingJAVAlanguagedevelopment,takeMyEclipseasthedevelopmentplatform.Thegame'sinterfaceisbasedontheGUI(graphicaluserinterface)development,whichmakesthegameinterfacesimpleandclear.Andcallsomeofthesefunctions,completedtheeventtriggerfunction.HopethatthroughthisdesignLianliankangame,foreveryonetobringtolifealittlefun.Thegamethroughthedefinitionofthedynamictwo-dimensionalarray,accordingtocertainprovisionsofthepathalgorithmtodetermine.Keywords:Lianliankan,game,JAVA,GUI,array

目录TOC\o"1-4"\h\z\u摘要 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-1) Control.java监听器类。 -7- -7-2) LoadAndSave.java游戏数据部分。 -7-3) Model.java驱动类。 -7-4) GamePanel.java绘制类。 -7-5) ImageLoader.java图片加载器。 -9-6) MainFrame.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绘制类。用于游戏是绘制选中时的边框,和连接两个相同图片的连线。 publicvoidshowPath(finalObjectobj){ newThread(newRunnable(){ ArrayList<Point>points=(ArrayList<Point>)obj; ArrayList<Shape>shapes=newArrayList<Shape>(); intstep=30; publicvoidrun(){ //添加起点矩形 shapes.add(matrixToRect(points.get(0))); //添加终点矩形 shapes.add(matrixToRect(points.get(points.size()-1))); //添加直线 for(inti=1;i<points.size();i++){ Pointp1=getCenter(matrixToRect(points.get(i-1))); Pointp2=getCenter(matrixToRect(points.get(i))); if(p1.x==p2.x){ intdistance=p2.y-p1.y; for(intj=0;j<=Math.abs(distance);j+=step) shapes.add(newLine2D.Double(p1,newPoint(p1.x, p1.y+distance/Math.abs(distance)*j))); }elseif(p1.y==p2.y){ intdistance=p2.x-p1.x; for(intj=0;j<=Math.abs(distance);j+=step) shapes .add(newLine2D.Double(p1,newPoint( p1.x+distance /Math.abs(distance)*j, p1.y))); } shapes.add(newLine2D.Double(p1,p2)); } Graphics2Dg2=(Graphics2D)getGraphics(); floatdash[]={4F}; g2.setStroke(newBasicStroke(2.0F,BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER,11.0F,dash,1.0F)); for(intindex=0;index<shapes.size();index++){ try{ Thread.sleep(10); }catch(InterruptedExceptione){ e.printStackTrace(); } for(intpre=0;pre<=index;pre++){ if(pre<2) g2.setColor(Color.BLUE); else g2.setColor(Color.RED); g2.draw(shapes.get(pre)); } } } }).start(); }}效果如图:ImageLoader.java图片加载器。用于加载库中的图片。MainFrame.java主窗体绘制。所有游戏中可见窗体的绘制。项目层次结构图:9算法设计图片消除算法 for(inti=0;i<map.length;i++) for(intj=0;j<map[0].length;j++){ Rectanglerect=matrixToRect(i,j); if(map[i][j]==0) continue; g.drawImage(ImageLoader.getImageOf(map[i][j]), rect.x,rect.y,null); } 图片加载算法publicclassImageLoader{ privatestaticBufferedImagecursorImage; privatestaticBufferedImageicon; privatestaticfinalBufferedImage[]images=newBufferedImage[Model.CARD_NUMBERS+1]; publicstaticBufferedImagegetCursorImage(){ if(cursorImage==null) //获得图片的编号 try{ URLClassLoaderurlLoader=(URLClassLoader)ImageLoader.class.getClassLoader(); URLurl=urlLoader.findResource("images/cursor.gif"); cursorImage=ImageIO.read(url); }catch(Exceptione){ e.printStackTrace(); } returncursorImage; } publicstaticBufferedImagegetIconImage(){ if(icon==null) //加载图标 try{ URLClassLoaderurlLoader=(URLClassLoader)ImageLoader.class.getClassLoader(); URLurl=urlLoader.findResource("images/QQ.png"); icon=ImageIO.read(url); }catch(Exceptione){ e.printStackTrace(); } returnicon; } publicstaticBufferedImagegetImageOf(intindex){ if(images[index]==null) //在已编号处加载图片 try{ URLClassLoaderurlLoader=(URLClassLoader)ImageLoader.class.getClassLoader(); URLurl=urlLoader.findResource("images/"+index+".gif"); images[index]=ImageIO.read(url); }catch(IOExceptione){ e.printStackTrace(); } returnimages[index]; }}二主要问题开始制作游戏时,主要解决的问题有以下几个方面:(1)、如何设置整个游戏的界面。(2)、如何控制连连看游戏中随机图片的生成切每种图片必须为偶数个;游戏开始后,判断鼠标两次点击的图片能否消去,即图片是否相同且图片之间路径的判断。(3)、如何判断游戏是否结束以及输赢的问题。三技术要求本游戏软件可以在大多数计算机上运行,游戏中能正确判断鼠标两次点击的图片是否可以消去、能正确判断游戏是否已经结束。四设计要求1开发环境在windowsXP系统下,JAVA程序设计语言及相应的集成开发环境,利用MyEclipse实现。开发平台jdk1.6。2理论基础(1)、熟悉JAVA语言基础(2)、GUI编程GUI是GraphicalUserInterface的缩写,图形化用户界面布局管理FlowLayout(流式布局管理器)从左到右的顺序排列。BorderLayout(边界布局管理器)东,南,西,北,中GridLayout(网格布局管理器)事件处理机制事件:用户对组件的一个操作。事件源:发生事件的组件。监听器:我们需要处理某个事件,就需要在发生事件的组件上添加监听器;事件处理器:监听器中的方法。监听器被添加在组件上之后,组件上发生了对应事件就会执行指定方法。动作事件,ActionEvent,在某一组件上发生了定义好的动作,例如按钮上鼠标点击或按空格,菜单上鼠标点击或按回车等。MyEclipse的操作。3开发目标系统能够提供友好的用户界面,使操作人员的心情放松;系统具有良好的运行效率,能够得到快速发现自我的目的;系统应有良好的可扩充性,可以容易的转入其它系统应用;平台的设计具有一定的灵活性。第四章游戏运行及测试分析一程序运行情况点击菜单中的开始游戏后的界面,连连看游戏规则很简单,就是点中两个互相匹配并且可以通过不多于两个折点的折线连相同的图片,然后消去。下图是开始游戏后的界面效果选择游戏难度(图)点击开始,开始当前难度游戏,如果不选择难度,则难度1到9随机点击刷新则所有图片随机改变位置其总数不变。提示,可以根据算法随机提示一组可以消去的图片。点击演示,电脑将自动完成消除,每一步都有边框以及连线显示,直到所有方块消除完毕图片由用户消除完毕,则如下图显示由于用户每次只能消除一对图形,即只会用到一个最短路径,但由于实现并不知道用户会选择哪一对图形,所以需要事先计算出所有可能的最短路径并保存起来。此外,采用这种方法的话似乎每次用户消去一对相同图像之后都需要重新计算出当前所有可能被连接的相同图形之间最短路径,这是因为当某些图像被消去之后可能会产生很多新路径,而我们又不能确定这些空出来的格子到底能够影响哪些路径,所以就只好都重新计算一遍。二测试计划及分析1检验的先后顺序在检验两个方块能否消掉的时候,我们要让两个方块同时满足两个条件才行,就是两者配对并且连线成功。所以,这里应该先检验配对,如果该条件不成立的话,就不要再进行连线检查了,这样可以避免很多不必要的复杂运算。当然,如果你在做这个游戏的时候,配对规则不够如此简单的话,那么就看哪个算起来麻烦就把它放在后面。2程序异常处理本程序没有涉及到程序的异常处理,只有关于“死锁”问题,本质上还是判别两个格子是否可以消去的问题。最直接的方法就是,对于游戏中尚未消去的格子,两两都计算一下,它们是否可以消去。此外,从上面的广度优先搜索可以看出,我们每次都是扩展出起始格子A(x1,y1)能够到达的格子。也就是说,对于每一个格子,我们可以调用一次上面的扩展过程,得到所有可以到达的格子,如果这些格子中有任意一个跟起始格子的图形一致,则它们可以消去,目前游戏我还没有发现“死锁”状态。结论“连连看”游戏的基本功能都已经实现了,其中很多变量之间数据的传递都很复杂,要搞不明白就没办法再往下做了,路径判断问题中用到数据结构的知识,也很抽象,代码量也很大,另外这个游戏不会用到数据库,所用功能也很少,只需要判断用户每次鼠标点击的坐标以及当前坐标位置代表的图片内容就好了通过这次“连连看”游戏的设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正的提高自己的水平,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,并且还发现了自己的许多不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。同时在这次的设计中也小小的体验了一下做项目的感受,我完成了这次JAVA课程设计,不过这只是我学习路上的驿站。我相信我在未来的学习中会记住从本次课程设计中所学到的东西,并将它用到未来的学习中去。致谢弹指一挥间,大学三年已经接近了尾声。三年的艰苦跋涉,两个月的精心准备,毕业设计终于到了划句号的时候,心头照例该如释重负,但创作过程中常常出现的辗转反侧和力不从心之感却挥之不去。毕业设计创作的过程并不轻松:各种压力的时时袭扰,知识积累的尚欠火候,致使我一次次埋头于图书馆中,一次次在深夜奋力敲打键盘。第一次花费如此长的时间和如此多的精力,完成一套设计作品,其中的艰辛与困难难以诉说,但曲终幕落后留下的滋味,是值得我一生慢慢品尝的。在这里需要的感谢的人很多,是他们让我这大学三年从知识到人格上有了一个全新的改变。感谢我的指导老师,够顺利完成毕业设计,离不开他的悉心指导,他对我的设计从确定题目、修改直到完成,给予了我许多的指点和帮助。感谢他在繁忙的工作之余,挤出时间对设计提出精辟的修改意见。在此,向老师致以最诚挚的谢意。最后我也要感谢我的母校三年来对我的培养。以及所有教给我知识的老师们祝你们工作顺利、身体健康!祝母校的明天越来越美好!参考文献[1]张明新,周耿烈.Java语言程序设计.重庆:重庆大学出版社,2004.[2]周晓聪,李文军,李师贤.面向对象程序设计与Java语言.北京:机械工业出版社,2004.[3]BruceEckel.Java编程思想.北京:机械工业出版社,2007.[4]JamesCohoon,JackDavidson.Java程序设计.北京:清华大学出版社,2005.[5]StevenHolzner.Java技术内幕.北京:机械工业出版社,2002.[6]张洪斌.Java程序设计百事通.北京:清华大学出版社,2001.[7]夏先波.JavaJDK实例宝典.北京:电子工业出版社,2007.[8]吴其庆.Java程序设计经典教程.北京:冶金工业出版社,2005.[9]耿祥义,张跃平.Java2实用教程.北京:清华大学出版社,2007.[10]蔡勇,姜磊,马宁,倪文志.Java2程序设计基础教程与上机指导.北京:清华大学出版社,2005.[11]林建素,孟康健.《Eclipse开发学习笔记》(第1版).北京:电子工业出版社.2008.4[12]李松林,陈华清,任鑫.《Eclipse宝典》(第1版).北京:电子工业出版社.2007.10/3017:12C620轴拨杆的工艺规程及钻2-Φ16孔的钻床夹具设计09/2113:39CA6140车床拨叉零件的机械加工工艺规程及夹具设计83100308/3015:37CPU风扇后盖的注塑模具设计09/2016:19GDC956160工业对辊成型机设计08/3015:45LS型螺旋输送机的设计10/0723:43LS型螺旋输送机设计09/2016:23P-90B型耙斗式装载机设计09/0820:17PE10自行车无级变速器设计10/0709:23话机机座下壳模具的设计与制造09/0820:20T108吨自卸车拐轴的断裂原因分析及优化设计09/2113:39X-Y型数控铣床工作台的设计09/0820:25YD5141SYZ后压缩式垃圾车的上装箱体设计10/0709:20ZH1115W柴油机气缸体三面粗镗组合机床总体及左主轴箱设计09/2115:34ZXT-06型多臂机凸轮轴加工工艺及工装设计10/3016:04三孔连杆零件的工艺规程及钻Φ35H6孔的夹具设计08/3017:57三层货运电梯曳引机及传动系统设计10/2914:08上盖的工工艺规程及钻6-Ф4.5孔的夹具设计10/0413:45五吨单头液压放料机的设计10/0413:44五吨单头液压放料机设计09/0923:40仪表外壳塑料模设计09/0820:57传动盖冲压工艺制定及冲孔模具设计09/0821:00传动系统测绘与分析设计10/0723:46保护罩模具结构设计09/2015:30保鲜膜机设计10/0414:35减速箱体数控加工工艺设计10/04

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论