JAVA实现连连看课程设计

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录

第一章系统描述............... ............... .. (1)

第二章分析与设计............... ............... (2)

一、功能分析............. ............... . (2)

二、流程图............. ............... (2)

三、设计要求............. ............... . (3)

1、实验环境............. ............... .. (3)

2、实验预备知识............. ............... . (3)

3、课程设计要求............. ............... . (3)

第三章连连看系统设计............. ............... (4)

一、算法设计............. ............... .. (4)

二、类的实现............. ............... .. (5)

三、方法的实现............. ............... (5)

第四章测试分析............. ............... (5)

一、运行情况............. ............... .. (5)

二、测试计划及分析............. ............... .. (9)

1、检验的先后顺序............. ............... .. (9)

2、程序异常处理............. ............... . (9)

第五章心得体会............. ............... .. (10)

第六章参考文献............. ............... .. (11)

附件............. ............... . (11)

第一章系统描述

近年来,Java作为一种新的编程语言,以其简单性、可移植性和平台无关性等优点,得到了广泛地应用,特别是Java与万维网的完美结合,使其成为网络编程和嵌入式编程领域的首选编程语言。

一个学期的时间来学习JA V A这门课,感觉还不错,因为我们不但学习了书上理论的东西,还安排了上机操作课。学习一门计算机语言必定离不开实践,只有通过实践我们才能体会到书本上体会不到的东西。所以,我们不仅要认真学习课本理论知识,更重要的是要通过上机实践才能增强和巩固我的知识。课程设计是培养我们综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是我们实践能力与创新精神的综合培养;在实践能力方面培养我们理论与实践相结合的作风,增强了我们将来在人才市场上的竞争力。

所以,对于我们初学者,首先利用课程设计这样的较小项目锻炼自己的科学研究精神和提高创新能力,是很有必要的。

课题设计的目的:

1、进一步加深对Java语言的理解和掌握;将所学的JA V A知识运用于实践中。

2、课程设计将理论与实践相结合,提供了一个既动手又动脑,独立实践的机会,锻炼我们的分析解决实际问题的能力,提高学生适应实际,实践编程的能力;

3、熟练掌握JA V A语言中图形用户界面程序的编写;

4、大体了解怎样用JA V A来编写小游戏的,增强我们实践能力和创新精神的综合培养。

可行性论证:

“连连看”游戏是一个经典的游戏,它因操作简单、娱乐性强而广受欢迎。我们通过所学的JAVA,利用eclipse设计了一个操作简单、界面美观、功能较齐全的“连连看”游戏。

通过本游戏的开发,达到学习Java技术和熟悉软件开发流程的目的。

这个游戏是用图形界面实现的,通过编译解释后,出现一个图开界面。界面上方有一行菜单栏,点击菜单栏上的游戏按钮,出现下拉菜单,选择开始,进入

游戏界面,游戏界面是由若干个隐形小方格组成的,每一个小方格里有一个图标,如果在一个边上有相同的图标,连续点击它们,若符合算法要求就会消失,且游戏期间有一定的时间限制。游戏还设有提示、退出、帮助的功能,方便游戏操作。

第二章分析与设计

一、功能分析

每次用户选择两个图形,如果图形满足一定条件(两个图形一样,且这两个图形之间存在转弯少于3的路径),则两个图形都能消掉。给定任意具有相同图形的两个格子,我们需要寻找这两个格子之间在转弯最少的情况下,经过格子数目最少的路径。如果这个最优路径的转弯数目少于3 ,则这两个格子可以消去。

将界面中相同的图片消去,游戏设有时限,如果在规定的时间内没有完成,就会跳出对话框“”的字样。如果玩家赢了这局,还没有过瘾的话,可以单击“再来一局”。判断游戏是否结束。如果所有图形全部消去,或者游戏玩家不可能再消去任意两个格子的时候,游戏应该结束。后一种情况,我们称之为“死锁”。

在死锁的情况下,我们也可以暂时不终止游戏,而是随机打乱局面,使得打破“死锁”局面。不管怎样,我们需要判别游戏当前状态是否为“死锁”状态。我们首先思考问题:怎么判断两个图形能否相消?前面分析中,我们已经知道,两个图形能够相消,当且仅当这两个图形相同,且它们之间存在路径转弯数目小于3。

因此,我们主要需要解决的问题还是,怎样求出相同图形之间的最短路径?这个最短的路径,我们首先需要保证转弯数目最少。在转弯数目最少的情况下,经过的格子数目要尽可能地少。

在经典的最短路问题中,我们需要求出经过格子数目最少的路径。而这里,要保证转弯数目最少,需要把最短路问题的目标函数修改为从一个点到另一个点的转弯次数。虽然,目标函数修改了,但算法的框架仍然可以保持不变。广度优先搜索是解决经典最

短路问题的一个思路。我们看看在新的目标函数(转弯数目最少)下,如何用广度优先搜索来解决图形A(x1,y1)和图形B(x2,y2)之间的最短路问题。

二、流程图

相关文档
最新文档