1、 毕业设计开题报告 学学 生生 姓姓 名:名: 学学 号:号: 学学 院院 : 专专 业业 : 计算机科学与技术 论论 文文 题题 目目: 连连看手机游戏的设计与开发 系主任:系主任: 指 导 教 师指 导 教 师 : 起 讫 日 期起 讫 日 期 2012 年 1 月 16 日2012 年 5 月 9 日 2012 年 3 月 10 日 毕毕 业业 设设 计计 开开 题题 报报 告告 1结合毕业设计情况,根据所查阅的文献资料,撰写 2000 字左右的文 献综述: 文文 献献 综综 述述 一、本课题选题的意义和目的 现代科学技术的发展,改变了人类的生活,作为新世纪的大学生,应该站在时代发 展的
2、前沿,掌握现代科学技术知识,以适应社会的发展,能够独立完成面临的任务,作 一名有创新意识的新型人才。 Java 语言的学习热潮并没有因为时间的推移而消退, 相反, 由于计算机技术的发展所带 来的新应用的出现, Java 越来越流行, 这种情况是以往程序设计语言在其生存周期内所 不多见的。 Java 语言之所以这样长盛不衰, 一是因为其众多的技术特点与现今的应用十 分合拍,可以覆盖大部分的需求;二是因为 SUN 公司不断推出新的版本,完善 Java 自 身的功能。 有了这两点, Java 语言成为程序员首选的程序设计开发工具就在情理之中了。 连连看游戏是一种很流行的小游戏, 记得在小时候去游戏厅
3、玩的时候就有两台专门的连 连看的机器(当然当时不叫这个名字) ,一个是连麻将牌、另一个是连水果图片。当时 的麻将牌分好几层,相邻层的牌还可以连,看得人眼花缭乱。参考资料中给出的游戏界 面很漂亮,不过似乎图形只有一层,而且数量也不是很多,降低了不少难度,连我也能 玩了。 毕毕 业业 设设 计计 开开 题题 报报 告告 2本课题要研究或解决的问题和拟采用的研究手段(途径) : 每次用户选择两个图形,如果图形满足一定条件(两个图形一样,且这两个图形之 间存在转弯少于 3 的路径) ,则两个图形都能消掉。给定任意具有相同图形的两个格子, 我们需要寻找这两个格子之间在转弯最少的情况下,经过格子数目最少的
4、路径。如果这 个最优路径的转弯数目少于 3 ,则这两个格子可以消去。 将界面中相同的数字消去,表上方的数字表示分数,你消去一组数字将得到 100 分。如 果界面中没有可消去的数字,可点击“重列”。如果玩家赢了这局,还没有过瘾的话, 可以单击“再来一局”。判断游戏是否结束。如果所有图形全部消去,或者游戏玩家不 可能再消去任意两个格子的时候,游戏应该结束。后一种情况,我们称之为“死锁”。 在死锁的情况下,我们也可以暂时不终止游戏,而是随机打乱局面,使得打破“死锁” 局面。 不管怎样, 我们需要判别游戏当前状态是否为“死锁”状态。 我们首先思考问题: 怎么判断两个图形能否相消?前面分析中,我们已经知
5、道,两个图形能够相消,当且仅 当这两个图形相同,且它们之间存在路径转弯数目小于 3。 因此,我们主要需要解决的问题还是,怎样求出相同图形之间的最短路径?这个最短的 路径,我们首先需要保证转弯数目最少。在转弯数目最少的情况下,经过的格子数目要 尽可能地少。 在经典的最短路问题中,我们需要求出经过格子数目最少的路径。而这里,要保证转弯 数目最少, 需要把最短路问题的目标函数修改为从一个点到另一个点的转弯次数。 虽然, 目标函数修改了,但算法的框架仍然可以保持不变。广度优先搜索是解决经典最短路问 题的一个思路。我们看看在新的目标函数(转弯数目最少)下,如何用广度优先搜索来 解决图形 A(x1,y1)
6、和图形 B(x2,y2)之间的最短路问题。 自定义类说明 类名: 数字连连看 作用: 自定义主类,对鼠标拖拽的初始界面进行声明* 继承的父类: JFrame 类 * 实现的接口: 没有 * public class 数字连连看 implements ActionListener JFrame mainFrame; /主面板 Container thisContainer; JPanel centerPanel,southPanel,northPanel; /子面板 JButton diamondsButton = new JButton65;/游戏按钮数组 JButton exitButton,resetButton,newlyButton; /退出,重列,重新开始按钮 JLabel fractionLable=new JLabel(“0“); /分数标签 JButton firstButton,secondButton; /分别记录两次被选中的按钮 int grid = new int87;/储