java游戏_计算机软件及应用_IT计算机_专业资料.docx
《java游戏_计算机软件及应用_IT计算机_专业资料.docx》由会员分享,可在线阅读,更多相关《java游戏_计算机软件及应用_IT计算机_专业资料.docx(17页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、JAVA程序设计课程设计报告题 目:连连看游戏的设计与实现姓 名:学 号:班 级:指导教师:完成时间2014年6月成 绩:数学与信息技术学院2014年6月目录1 弓丨日 11.1 游戏开发背景11. 2 游戏开发的目的和意义11. 3完成的主要工作22 I耐 /足 刀 万 不1,3 又 | 32. 1需求分析与设计思路32. 1. 1关键技术说明32. 1.2需求分析32. 1. 3游戏设计方案与思路32. 1.4游戏目录结构说明42.2 系统功能结构53详细设计63.1 总体模块实现63. 1. 1实现原理63. 1. 2总分层结构及调用63. 1. 3关键代码分析64系统运行结果155课程
2、设计总结166 参考文献16连连看游戏的设计与实现摘要 随着社会节奏的加快,平常工作的竞争强度也加大,生活的压力也跟着加重。所以休息 时或下班后大家都需要个休闲的娱乐工具,来放松自己,缓解自己的压,消除紧张的疲劳状态。 连连看游戏是一种意趣休闲的小游戏,不仅能调节精神,还能在游戏中锻炼我们的眼力视野,注意 力的专心的程度,开发我们的思维能力,同时可以充实自己,向高等级挑战,培养我们面対困难时 自己所具有攻克困难的信心。1.1 游戏开发背景随着技术对游戏经验的促进,游戏市场持续增长。越来越多的人开始认为,经过了许多人共用 一台计算机的大型主机时代,一人一台计算机的个人PC时代之后,下个时代就是一
3、人多台计算 设备的普及计算时代(UbiquitousComputing, IBM称之PervasiveComputing)。计算设备将从单 的PC扩展到各种各样的大小和功能,从家庭消费电子产品,到个人随身携带,穿着,车载的各种 移动信息处理设备,多样化是这个领域的最大特点。连连看小游戏,只要将相同的两图形用三根以 内的直线连在起就可以消除,规则简单容易上手。游戏速度节奏快,画面淸晰可爱,适合细心的 玩家。连连看游戏玩法简单,休闲,益智,趣味,广受欢迎1.2 游戏开发的目的和意义随着社会节奏的加快,平常工作的竞争强度也加大,生活的压力也跟着加重。所以休息时或下 班后大家都需要个休闲的娱乐工具,来
4、放松自己,缓解自己的压,消除紧张的疲劳状态。连连看 游戏是种意趣休闲的小游戏,不仅能调节精神,还能在游戏中锻炼我们的眼力视野,注意力的专 心的程度,开发我们的思维能力,同时可以充实自己,向高等级挑战,培养我们面对困难时自己所 具有攻克困难的信心。学会JAVA程序开发的环境搭建与配置,并在实际运用中学习和掌握JAVA程序开发的全过程。 进一步熟悉掌握JAVA程序设计语音的基础内容,如用户图形界面设计、JAVA多线程编程、JAVA数 据库编程等。通过亲自动手写程序,拓展知识面,锻炼调试能力。13完成的主要工作设计用户游戏界面:10*10块的连连看界面,7种不同颜色蓝色,黄色,粉红色,红色,绿色,
5、白色,青绿色,10*10中不同颜色的排列顺序是随机生成的。用户游戏键面中,设计个菜单栏, 有重新开始和结束。如果你出现的10*10的连连看界面自己不排序不喜欢,可以点重新开始,如果 你玩到半不想玩,可以点结束。两个圆角矩形连通时连接线路的走向是要进行判断的完成游戏逻辑的设计:判断鼠标点击区域是否为游戏区,判断鼠标点击的是否是为消除的块, 点击块后判断是否能成功连通,能连通则判断是否能够按规则(转向次数不大于两次)连通。消除 是用户的游戏界面是否能够及时更新实现游戏算法:栈2需求分析和总体设计对选题系统进行需求分析和设计思路概述,并给出系统功能结构及数据库设计。2.1 需求分析与设计思路2.1.
6、1 关键技术说明1 .游戏界面的绘制。drawRoundRect方法绘制圆角矩形,fillArc方法在圆角矩形中填充椭圆,drawLine方法绘制两个 连通后的矩形位置的线条2 .游戏算法的设计,判断两个块之间的连通型。先判断两个是否相同。相同的话在用checkPathR第 一次搜索的块与目标块的索引相同,代表连通,返回成功,否则分别从向上转向,向下转向,向左 转向,向右转向搜索,直到搜索结束,如果没有直到结束都没有搜到可以用三根以内的直线将相同 的两图形连在起,就是不可以消除,否则就可以消除2.1. 2需求分析随着信息化产业的不断发展,人们水平不断提高。游戏成为当今时代不可缺少的一部分,它既
7、 能减轻人们的压力也能锻炼人们的判断能力和反应能力。而连连看适合于大众的集体休闲,趣味益 智和娱乐。它看似简单但却变化无穷。连连看作为一种益智类游戏,由于规则简単,容易学会,再 加上界面丰富在上班族的办公电脑上风靡多时,而它主要的功能是使得人们在工作紧张之余能够调 节人们的心情。连连看游戏有很多的好处,游戏不再是静态的,而是动态的了。而且在此基础上游 戏变得更加华丽。无形中增强而来游戏的可玩性。游戏开发成功后,最终用户为各个年龄阶段的人群,用户范围相当广泛。本游戏友好的用户界 面,简单易学的鼠标操作以及简单通俗的游戏规则,使广大的用户不需要专门进行培训,就可以立 即学会如何使用。2.1.3游戏
8、设计方案与思路给游戏区内每个块分配个索引,再给每个块分配个类型,包括不是游戏区内的空白处。 在14*14个块的区域中,其中10*10是游戏区内需要消除的块,游戏区外的第一圈为空白块,类型 为0,此后游戏区内消除的块也会被标记为0,游戏区外第二圈为边界块,类型为1。当选中一个块时,先判断块类型是否0,是则在游戏区内的块,否则不再游戏区内。当在游戏 区内时,选中第一个块index。和目标块indexl时,会检测他们之间的连通性,若能够连通,判断转 向次数,若转向次数大于二次,则消除失败,否则成功。最后循环以上操作。2. L4游戏目录结构说明表2-1包名作用Java.awt.*所有组件容器的包jav
9、a.awt.event.*所有事件类包Java.until.*包叫做实用包(Utilities),提供了各种不同实用功能的类表2-2Main文件作用(方法入口,连通性计算)void main搭建主框架,建立鼠标、窗的事件监听窗的事件监听中的方法作用windowActivated 方法将 Window设置为活动Window时调用windowClosed 方法因对窗口调用dispose而将其关闭时调用windowClosing 方法用户试图从窗口的系统菜单中关闭窗时调用windowDeactivated 方法当Window不再是活动 Window时调用windowDeiconified窗口从最小化
10、状态变为正常状态时调用windowlconified 方法窗口从正常状态变为最小化状态时调用windowOpened 方法窗口首次变为可见时调用。建立鼠标事件监听的方法mouseClicked点击鼠标响应事件mouseEntered是鼠标刚进入组件的时候调用(只调用一次)mouseExited是鼠标在组件上移动的时候调用(只要鼠标没有离开组件,一直调用)mousePressed鼠标按下时响应事件Animation 文件作用void draw绘制矩形框然后在矩形框中填充椭圆两个连通矩形的位置画连接线void updata连通消除矩形后及时更新键面,2.2系统功能结构对系统实现功能进行说明,分析系
11、统功能结构,画出系统功能结构图,如图2-1所示。游戏界面显示连连看框图游戏事件监听3详细设计给出系统的数据库设计,并对所完成的模块的具体实现进行说明,包括模块实现原理、实现效果、 关键代码说明,模块分层结构和调用关系等。3.1 总体模块实现3.1.1 实现原理通过递归方法,判断连通性,用栈方式存储连通路径。3.1.2 分层结构及调用关系说明1、判断用户鼠标是否点击入游戏区域:是,则继续判断;否,则返回失败(界面上显示 无效果)。2、判断用户鼠标是否点击在未消除的块上(首块):是,则白色框变红,然后继续判断;否,则返回失败(界面上显示无效果)。3、判断用户鼠标是否点击在为可消除的块上(目标块);
12、是,则白色框变红,然后继续判 断;否,则返回失败(界面上显示无效果)。4、判断两个块之间的连通性(逐块搜索):4.1、 当前块能够连通(为空块),则继续搜索、先向上,向下,向左,向右转向: 转向小于两次,则返回成功;转向大于两次,则返回失败。4.2、 当前快不能够连通(为未消除的块),则返回失败。3.1.3关键代码分析连连看判断连通性;public class Main(static boolean isRunning = true;static int tiles = new int14 * 14;static Vector command_list = new Vector();/Vect
13、or是集合,集合是自动增加的数组用口来声明空间。而集合不需要声明空间static LinkedList animation_list = newLinkedList () ; /LinkedLis匸是通过点直接彼此连接来实现的。static int selected = -1;/定义selected赋初值 1static boolean checkPath(int indexO,int indexl,Stack path)对路径的搜索(第一个块,目标块,存放路径) if (tilesindexO != tilesindexl)return/如果这两个块的类型不是样的,返回失败.path .pu
14、sh (indexO) ; /成功的话,将第一个块的索I暂时保存在栈屮return /然后开始第一次遍历路在checkPathR(indexO - 14,indexl,0,O,path) | indexO这块的上一块开始搜索,调用checkPathRcheckPathR(indexO + 14,indexl,1,O,path) |/indexO这块的下块开始搜索checkPathR(indexO - 1,indexl,2,0,path) I|indexO这一块的左边块开始搜索 checkPathR(indexO + 1,indexl,3,O,path) /indexO这块的右边一块开始搜索;/
15、如果其中一个方向开始的遍历路径成功连接到indexl的话返冋成功,则两块就成功连通 )static boolean checkPathR(int indexO,int indexl,int d,int t,Stack path)/ (第一次搜索的块,目标块,方向,转向次数,保存路径的栈(path.push (indexO) ; /将首块的索引先存入栈if (indexO = indexl)/第一次搜索的块与目标块的索引相同,代表连通,返回成功。 return true;if (tilesindexO != 0)/如果捜索到的块不空门块,意味着碰到了未消除的块,然后 将入栈的路径弹出,并返回失败
16、。path.pop ;return false; switch (d) /选择转向的方向 case 0 : /向上if (checkPa thR (indexO - 14, indexl, 0, t, path) )/调用自身方法,如果 成功,继续搜索路径(下个空白块)。不成功,跳出if语句,开始转向。return true;+t;if (t 2) /如果失败,将存入路径弹出,返回失败 path.pop ;return false;if (checkPathR (indexO - 1, indexl, 2, t,path) )/向左转向,成功返冋 True,不成功执行下个ifreturn tr
17、ue;if (checkPa thR (indexO + 1, indexl, 3, t, path) )/向右转向,成功返冋 true,不成功,则代第一次向上的路径没有路可到达目标块index。失败!return true;break;case 1: /第一次向上搜索路径不成功,向下if (checkPathR(indexO + 14,indexl,1,t,path) return true;+t;if (t 2) path.popO ; return false;if (checkPathR(indexO - 1,indexl,2,t,path) return true;if (check
18、PathR(indexO + 1,indexl,3,t,path) return true;break;case 2: /第次向上、卜.搜索路径不成功,向if (checkPathR(indexO - !,indexl,2,t,path) return true;+t;if (t 2) path.pop (); return false;if (checkPathR(indexO - 14,indexl,0,t,path) return true;if (checkPathR(indexO + 14,indexl,1,t,path) return true;break;case 3: /第次向
19、上、卜、左搜索路径不成功,向行if (checkPathR(indexO + 1,indexl,3,t,path) return true;+t; if (t 2) path.pop ();return false;if (checkPathR(indexO - 14,indexl,0,t,path) return true;if (checkPathR(indexO + 14,indexl,1,t,path) return true;break; path.pop ();return false; 主函数中的方法及框架设计public static void main(String args
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 游戏 计算机软件 应用 _IT 计算机 专业 资料
限制150内