您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 广告经营 > Java连连看课程设计
I摘要关键字:发展,java,连连看,程序设计;现代科学技术的发展,改变了人类的生活,作为新世纪的大学生,应该站在时代发展的前沿,掌握现代科学技术知识,以适应社会的发展,能够独立完成面临的任务,作一名有创新意识的新型人才。Java语言的学习热潮并没有因为时间的推移而消退,相反,由于计算机技术的发展所带来的新应用的出现,Java越来越流行,这种情况是以往程序设计语言在其生存周期内所不多见的。Java语言之所以这样长盛不衰,一是因为其众多的技术特点与现今的应用十分合拍,可以覆盖大部分的需求;二是因为SUN公司不断推出新的版本,完善Java自身的功能。有了这两点,Java语言成为程序员首选的程序设计开发工具就在情理之中了。连连看游戏是一种很流行的小游戏,记得在小时候去游戏厅玩的时候就有两台专门的连连看的机器(当然当时不叫这个名字),一个是连麻将牌、另一个是连水果图片。当时的麻将牌分好几层,相邻层的牌还可以连,看得人眼花缭乱。作为一个java初学者,我所编辑的“悠嘻猴连连看”小游戏,只有几个基本功能:“开始”“再来一局”炸弹“重新开始”“退出”。我所选中给出的游戏界面很漂亮,不过似乎图形只有一层,而且数量也不是很多,只有64张图,降低了不少难度。目录摘要......................................................................I第1章需求分析..........................................................11.1功能分析............................................................11.2流程图..............................................................2第2章详细设计...........................................................32.1课程设计目的........................................................32.2课程设计的实验环境..................................................32.3课程设计的预备知识..................................................32.4课程设计要求........................................................32.5连连看算法设计......................................................42.6类的实现方法........................................................42.6.1成员变量........................................................42.6.2方法设计........................................................5第3章测试分析...........................................................73.1程序运行情况........................................................73.2测试计划及分析......................................................93.2.1检验的先后顺序..................................................93.2.2程序异常处理....................................................9第4章课程设计总结.....................................................10附件A....................................................................1参考资料..................................................错误!未定义书签。第1章需求分析1.1功能分析每次用户选择两个图形,如果图形满足一定条件(两个图形一样,且这两个图形之间存在转弯少于3的路径),则两个图形都能消掉。给定任意具有相同图形的两个格子,我们需要寻找这两个格子之间在转弯最少的情况下,经过格子数目最少的路径。如果这个最优路径的转弯数目少于3,则这两个格子可以消去。将界面中相同的猴子图片消去,游戏限时1000秒,如果在规定的时间内没有完成,就会跳出对话框“笨蛋!游戏时间到!GAMEOVER!!!”的字样。如果玩家赢了这局,还没有过瘾的话,可以单击“再来一局”。判断游戏是否结束。如果所有图形全部消去,或者游戏玩家不可能再消去任意两个格子的时候,游戏应该结束。后一种情况,我们称之为“死锁”。在死锁的情况下,我们也可以暂时不终止游戏,而是随机打乱局面,使得打破“死锁”局面。不管怎样,我们需要判别游戏当前状态是否为“死锁”状态。我们首先思考问题:怎么判断两个图形能否相消?前面分析中,我们已经知道,两个图形能够相消,当且仅当这两个图形相同,且它们之间存在路径转弯数目小于3。因此,我们主要需要解决的问题还是,怎样求出相同图形之间的最短路径?这个最短的路径,我们首先需要保证转弯数目最少。在转弯数目最少的情况下,经过的格子数目要尽可能地少。在经典的最短路问题中,我们需要求出经过格子数目最少的路径。而这里,要保证转弯数目最少,需要把最短路问题的目标函数修改为从一个点到另一个点的转弯次数。虽然,目标函数修改了,但算法的框架仍然可以保持不变。广度优先搜索是解决经典最短路问题的一个思路。我们看看在新的目标函数(转弯数目最少)下,如何用广度优先搜索来解决图形A(x1,y1)和图形B(x2,y2)之间的最短路问题。1.2流程图第2章详细设计2.1课程设计目的《JAVA程序设计》是计算机相关专业的必修专业基础课程,其实践性、应用性很强。实践教学环节是必不可少的一个重要环节。本课程的程序设计专题实际是计算机相关专业学生学习完《JAVA程序设计》课程后,进行的一次全面的综合训练,JAVA程序设计的设计目的是加深对理论教学内容的理解和掌握,使学生较系统地掌握程序设计及其在网络开发中的广泛应用,基本方法及技巧,为学生综合运用所学知识,利用软件工程为基础进行软件开发、并在实践应用方面打下一定基础。2.2课程设计的实验环境硬件要求能运行Windows9.X操作系统的微机系统。JAVA程序设计语言及相应的集成开发环境,UltraEdit-32开发工具。2.3课程设计的预备知识熟悉JAVA语言及UltraEdit-32开发工具。2.4课程设计要求按课程设计指导书提供的课题,要求学生在自行完成各个操作环节,并能实现且达到举一反三的目的,完成一个项目解决一类问题。要求学生能够全面、深入理解和熟练掌握所学内容,并能够用其分析、设计和解答类似问题;对此能够较好地理解和掌握,能够进行简单分析和判断;能编写出具有良好风格的程序;掌握JAVA程序设计的基本技能和面向对象的概念和方法;了解多线程、安全和网络等编程技术。同时培养学生进行分析问题、解决问题的能力;培养学生进行设计分析、设计方法、设计操作与测试、设计过程的观察、理解和归纳能力的提高。2.5连连看算法设计在检验两个方块能否消掉的时候,我们要让两个方块同时满足两个条件才行,就是两者配对并且连线成功。*分3种情况:(从下面的这三种情况,我们可以知道,需要三个检测,这三个检测分别检测一条直路经。这样就会有三条路经。若这三条路经上都是空按钮,那么就刚好是三种直线(两个转弯点)把两个按钮连接起来了)*1.相邻*2.若不相邻的先在第一个按钮的同行找一个空按钮。1).找到后看第二个按钮横向到这个空按钮所在的列是否有按钮。2).没有的话再看第一个按钮到与它同行的那个空按钮之间是否有按钮。3).没有的话,再从与第一个按钮同行的那个空按钮竖向到与第二个按钮的同行看是否有按钮。没有的话路经就通了,可以消了.*3.若2失败后,再在第一个按钮的同列找一个空按钮。1).找到后看第二个按钮竖向到这个空按钮所在的行是否有按钮2).没有的话,再看第一个按钮到与它同列的那个空按钮之间是否有按钮。3).没有的话,再从与第一个按钮同列的那个空按钮横向到与第二个按钮同列看是否有按钮。没有的话路经就通了,可以消了。*若以上三步都失败,说明这两个按钮不可以消去。2.6类的实现方法2.6.1成员变量成员变量也叫类的属性,一般带有访问控制属性的,而全局变量虽然也有类的属性,但全局变量严重影响了封装和模块化,一般的全局变量前面要加上static和fina属性其中,static使该变量任何类都可用(方法ClassName.全局变量名),而fina则使得变量不可更改,基本上算是常量了,这也在一定程度上防止对变量的非法修改。表2-6-1成员变量成员变量描述变量类型名称文件FileFile文件区JtextareaTextarea菜单项JmenuitemMenuitem_copy菜单UmenuitemUmenuitem标签JlabelLabel_seek文件名StringSeel2.6.2方法设计方法名称为任何合乎语法的识别字,返回值类型是方法执行结果返回给调用者的数据类型,void表示没有返回值,参数行(parameterlist)是调用时给予的参数声明,两个以上的参数声明以逗号隔开,若没有参数则参数行为空白,调用时每一个参数对应一个参数值(argument)大括号内为方法本体,也称为方法程序模块(block),包含声明(declarations)和语句(statements),声明也可以掺杂在语句之间。一个方法不能声明在另一个方法内。表2-6-2方法定义方法名功能备注MyTextEditor创建文本编辑器构造方法Dialog创建对话框addMenu添加菜单栏菜单项writeToFile向文本区写文件readFromFile读文件openDialog打开文件saveDialog保存对话框actionPerformed事件处理itemStateChangedItemListener事件处理方法mouseClicked鼠标处理事件接口方法mouseEvent鼠标处理事件接口方法mouseReleased鼠标处理事件接口方法mouseEntered鼠标处理事件接口方法mouseExit鼠标处理事件接口方法mouseDragged鼠标处理事件接口方法Main程序开始运行第3章测试分析3.1程序运行情况连连看游戏规则很简单,就是点中两个互相匹配并且可以通过不多于两个折点的折线连在一起的方块后,这两个方块就可以消掉。图1初始界面菜单选项中,包括“开始游戏”、“重新开始”、“炸弹”、“退出”功能。当选择炸弹功能时:每次含有三个炸弹,所炸的位置也是随机的;图2游戏界面粗略想来,由于用户每次只能消除一对图形,即只会用到一个最短路径,但由于实现并不知道用户会选择哪一对图形,所以需要事先计算出所有可能的最短路径并保存起来。此外,采用这种方法的话似乎每次用户消去一对相同图像之后都需要重新计算出当前所有可能被连接的相同图形之间最短路径,这是因为当某些图像被消去之后可能会产生很多新路径,而我们又不能确定这些空出来的格子到底能够影响哪些路径,所以就只好都重新计算一遍。其缺点很明显就是每次消去图形动作之后重新计算所有可能的最短路径所需要消耗的时间;而该方法的优点则是可以很快地判断两个相同图形之间是否存在满
本文标题:Java连连看课程设计
链接地址:https://www.777doc.com/doc-2401738 .html