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

下载本文档

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

文档简介

毕业设计 论文 任务书毕业设计 论文 任务书 一 题目说明 目的和意义 游戏产业作为现代电脑电子技术的产物 正在以其独特的魅力在全世界的娱乐领域占据主流位置 我们在承认广大娱乐网民的选择空间狭小的同时 也必须明确的一点就是游戏本身所具有的强大的吸引 力 游戏的吸引力主要在于 它在让玩家打发时间的同时 可以让人在紧张工作之余带来最大程度的放 松 也可以增进人们之间的交流 沟通 通过游戏还可以认识更多的朋友 也可以到达跨省 跨市 甚 至跨国间人们互相娱乐的目的 从而满足了人们休闲的需要 而且游戏产业促动高科技技术不断升级 作为经济增长的一大支撑点 已经成为经济腾飞的 第四产业 现在小游戏 网页游戏越来越受网民欢迎 除了玩的方法简单外 不像其他游戏还需要注册下载繁 琐过程 很多游戏不乏经典 由于手机互联网的不断发展 传统网游已经不能跟上时代的潮流 而网页 游戏无需客户端的特性 决定了将来会是 Web 游戏主宰网游市场 作为最基本的网页游戏之一 连连看 游戏的设计与实现可以积累开发网页游戏的经验 完善开发思路 为以后更高层次上的网页游戏开发 打下坚实的基础 更好的推动网页游戏的发展 正是因为如此 通过本次毕业设计 让学生掌握如何制作一个游戏软件 以及制作游戏软件的整个 流程 制作游戏软件的步骤 让学生熟悉项目开发的完整过程 为即将到来的就业工作打下基础 另外 也通过本次设计将三年来所学的专业知识和其他方面的知识融入到实际应用中 在实际运用中学习和掌 握 Java 程序开发的全过程 进一步熟悉掌握 Java 程序设计语言的基础内容 基本技能和方法 同时培 养学生进行分析问题 解决问题的能力 培养学生进行设计分析 设计方法 设计操作与测试 设计过 程的观察 理解和归纳能力的提高 二 设计 论文 要求 工作量 内容 设计内容 通过 JAVA 编一个连连看程序 通过鼠标点击把两张一样的牌 用三根以下的线连起来使其消掉 程序 实现以下几个功能 1 实现个人小型休闲游戏连连看 2 开始游戏后 随机生成图片 或字符 位置 要求是至少两两相同 位置随机打乱 3 游戏规则是在一定时间内将相同字符或图片的牌连接 但要满足只能至少单边无阻碍呈直线趋 势连接 否则视为无效 若连接一对成功就消失于界面 继续游戏 直到游戏结束或时间用完 4 游戏过程中 遇到困难难以寻找下一符合要求的一对牌 可按左下按钮重置重新排列 方可继 续游戏 5 可点击 退出游戏 按钮 结束游戏 6 游戏中可使用道具 可在以下内容中进行选择 也可根据实际情况 自选内容 但需事先和指导教师进行沟通 参考题目 Java 编程实现贪吃蛇游戏 打地鼠游戏 设计要求 1 系统能够提供友好的用户界面 使操作人员的心情放松 2 系统具有良好的运行效率 能够得到快速发现自我的目的 3 系统应有良好的可扩充性 可以容易的转入其它系统应用 4 平台的设计具有一定的灵活性 实施步骤 1 熟悉 JAVA 语言 UltraEdit 32 开发工具 Eclipse 开发工具 占工作量的 5 2 游戏框架的搭建 占工作量的 15 3 菜单的制作 占工作量的 10 4 UI 的设计 占工作量的 10 5 算法的设计 占工作量的 15 6 算法的实现 占工作量的 30 7 系统调试 各小组进行功能整合 由小到大地调试功能模块 完成整个系统要求 占工作量的 10 8 功能完善和改进 做最后的修缮和调整 使得功能全面 运行流畅 贴近实际运行环境 占 5 毕业论文 围绕 连连看 游戏的分析 设计与实现 撰写论文 论文不少于 30000 字 论文撰写规范参考附件 兰州工专论文撰写规范 附件一 doc 提交内容 连连看 游戏的可执行文件和源码 毕业论文的电子稿和打印稿 答辩 PPT 注意事项 毕业设计的时间安排根据时间表 最后一周 检查程序 交毕业设计论文 交毕业设计系统 Powerpoint 电子显示文稿 按要求将毕业设计论文装订成册 指导老师打分方案 毕业设计成绩 考勤 30 论文 40 技术实现 30 每周考勤一次 有特殊情况需向指导教师请假 具体论文上交时间 论文答辩时间以系办通知为准 三 进度表 日 期内 容 第 15 周 查阅文献 分析功能 确定基本思路和设计内容 确定需求分析 开发环境的搭建 第 16 周 设计界面 图片的选取与随机生成 单击控件的事件处理 时间控制 其他控件与功能 第 17 周 算法路径的实现 得分设置 过关设置 第 18 周完成系统 做功能修缮和调整 编写用户手册 第 19 周 第 20 周 按要求完成论文 并上交论文 制作电子文档 为答辩做准备 完成日期 2011 年 1 月 6 日 答辩日期2011 年 2 月 21 日 四 主要参考文献 资料 设备和实习地点及翻译工作量 设备 实践基地资源 个人设备资源及实习地点的设备资源 按照设计要求进行配置和安装 设计环境 软件 Windows XP JDK6 0 以上版本 Eclipse5 0 以上版本 硬件 以软件安装要求为准则 在设计的过程中确保程序调试的流畅 实习地点 计算机实践基地 学生选定的调式地点与学生自己考察的外部地点相结合 翻译工作量 对论文标题 关键字 摘要进行英文翻译 参考文献 1 张明新 周耿烈 Java 语言程序设计 重庆 重庆大学出版社 2004 2 周晓聪 李文军 李师贤 面向对象程序设计与 Java 语言 北京 机械工业出版社 2004 3 Bruce Eckel Java 编程思想 北京 机械工业出版社 2007 4 James Cohoon Jack Davidson Java 程序设计 北京 清华大学出版社 2005 5 Steven Holzner Java 技术内幕 北京 机械工业出版社 2002 6 张洪斌 Java 程序设计百事通 北京 清华大学出版社 2001 7 夏先波 Java JDK 实例宝典 北京 电子工业出版社 2007 8 吴其庆 Java 程序设计经典教程 北京 冶金工业出版社 2005 9 耿祥义 张跃平 Java 2 实用教程 北京 清华大学出版社 2007 10 蔡勇 姜磊 马宁 倪文志 Java 2 程序设计基础教程与上机指导 北京 清华大学出版社 2005 11 林建素 孟康健 Eclipse 开发学习笔记 第 1 版 北京 电子工业出版社 2008 4 12 李松林 陈华清 任鑫 Eclipse 宝典 第 1 版 北京 电子工业出版社 2007 9 指导教师签字教研室主任签字主管系领导签字 年 月 日年 月 日年 月 日 注 本任务书要求一式两份 一份系部留存 一份报教务处实践教学科 摘要摘要 游戏发展至今已经有 30 多年历史 在这个短暂的时期里 随着硬件水平的提高 游戏 开发新技术层出不穷 经典游戏比比皆是 大部分的人一听到连连看游戏 通常就会想到这 是一个小游戏 连连看游戏 是指在一个区域内 分布着许多不同的图片 通过点击两张相同的图片并 符合一定的规则消除它们的一个游戏 我们最常见的是在 QQ 游戏大厅里的 QQ 连连看 网络 上也有许多各式各样的单机版连连看游戏 在游戏的过程中 可以考虑下如何使用自己掌握 的程序去实现游戏的效果 并尝试去开发属于自己的连连看 这是一件十分惬意的事情 在 本章中 我们将详细的教大家如何使用 Java 去开发一款属于自己的单机连连看 本游戏采用 JAVA 语言开发 以 MyEclipse 为开发平台 游戏主界面是基于 GUI 图形 用户界面 的开发 使得游戏界面简单清晰 并调用了其中的一些函数 完成了事件的触发 功能 希望通过这次开发设计出的连连看小游戏 给大家的生活带来一点乐趣 游戏通过定义动态的二维数组 根据一定的算法实现规定的路径判断 关键词 连连看 小游戏 JAVA GUI 数组 Abstract Game development has 30 years of history in this short period along with the hardware level game development new technology emerge in an endless stream classic games meet the eye everywhere Most of the people hear Lianliankan game they usually think this is a small game Lianliankan game refers to a region the distribution of many different pictures click through to two cards of the same picture and conform to certain rules to eliminate them in a game It is most common in QQ game hall QQ Lianliankan the network also has a lot of every kind of stand alone edition game In the course of the game can consider how to use their mastery of the program to achieve game effects and try to develop their own look again and again this is a very happy thing In this chapter we will detail the teach you how to use Java to develop a belongs to own stand alone lianliankan The game using JAVA language development take MyEclipse as the development platform The game s interface is based on the GUI graphical user interface development which makes the game interface simple and clear And call some of these functions completed the event trigger function Hope that through this design Lianliankan game for everyone to bring to life a little fun The game through the definition of the dynamic two dimensional array according to certain provisions of the path algorithm to determine Key words Lianliankan game JAVA GUI array 目录目录 摘要摘要 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 功能设计功能设计 1 用户可以通过点击菜单中的 开始游戏 选项 开始新游戏程序 程序会载入图 片 并通过特定的算法排列图片 并标记图片 以便判断图片是否相同 记录图片坐标 以 方便计算图片是否可以相连 确定图片大小 以确定用户点击的是那张图片 2 用户选择两张一样的图片 通过鼠标进行选取 如果用户两次点击的图片不相同 那么系统认为用户没有点 鼠标记数归 0 以完成用户以后的选取工作 如果用户选择的 是相同的图片 那么系统会消除这两张图片 并使鼠标记数为 0 并消除这两张图片的标记 使里面的图片被标记在外面 以便用户可以进行以后的选择 3 用户也可使通过使用 刷新 功能进行图片重新排版 4 用户点击提示系统将通过连线 提示用户下一步可消除的图片 5 用户点击演示 系统自动完成游戏 2 2 游戏模块游戏模块设计设计 根据对 连连看 游戏的分析 该游戏可分为三个模块 算法模块 界面显示模块 菜 单控制模块 如下图 3 1 所示 连连看游戏 算法模块菜单 控制 模块界面显示模块 图 3 1 游戏流程模块图 3 3 算法模块算法模块 1 图片路径处理设计 2 图片的产生设计 4 4 界面显示模块界面显示模块 1 游戏界面设计 2 游戏过关 失败的设计 5 5 菜单控制模块菜单控制模块 1 开始游戏 2 重新开始 3 刷新 4 提示 5 演示 6 游戏难度选择 如下图 3 5 所示 难度选择 游戏 关于 开始 开 始 演 示 判断 是否 满足 要求 否 是 消除图片 刷新 提示 全部消除 游戏结束 6 6 地图设计地图设计 地图的设计是采用 GUI 编程的网格布局 定义一个八行八列的网格布局 使用 16 个 数字然后随机产生四个数字 用二维数组把它们打乱放到八行八列的网格布局中 注意的 是二维数组的下标要和网格布局是的行 列数相同 7 7 算法设计算法设计 在检验两个方块能否消掉的时候 我们要让两个方块同时满足两个条件才行 就是两者 配对并且连线成功 如图 4 3 所示 分 3 种情况 从下面的这三种情况 我们可以知道 需要三个检测 这三个检测分别 检测一条直路经 这样就会有三条路经 若这三条路经上都是空按钮 那么就刚好是三种直 线 两个转弯点 把两个按钮连接起来了 1 相邻 2 若不相邻的先在第一个按钮的同行找一个空按钮 1 找到后看第二个按钮横向到 这个空按钮所在的列是否有按钮 2 没有的话再看第一个按钮到与它同行的那个空按钮之间 是否有按钮 3 没有的话 再从与第一个按钮同行的那个空按钮竖向到与第二个按钮的同行 看是否有按钮 没有的话路经就通了可以消了 3 若 2 失败后 再在第一个按钮的同列找一个空按钮 1 找到后看第二个按钮竖向 到这个空按钮所在的行是否有按钮 2 没有的话 再看第一个按钮到与它同列的那个空按钮 之间是否有按钮 3 没有的话 再从与第一个按钮同列的那个空按钮横向到与第二个按钮同 列看是否有按钮 没有的话路经就通了 可以消了 若以上三步都失败 说明这两个按钮不可以消去 具体判断流程见下图 是是否否为为同同一一图图片片 是是否否在在同同一一位位置置 是是否否在在一一条条横横线线 是是否否在在一一条条竖竖线线 返返回回ture 是是否否相相邻邻 是是否否直直线线相相连连 返返回回ture 是是否否直直线线相相连连 是是否否相相邻邻 返返回回ture 返返回回ture 是是 否否 否否 返返回回false 否否 是是 是是 否否 是是 是是 是是 是是 否否 是是 当当两两图图不不在在一一条条直直线线上上 则则以以两两图图在在X Y方方向向的的延延 长长线线上上去去找找两两个个点点 使使p1 到到i i到到j j到到p2都都能能直直线线 相相连连 否否 返返回回false 返返回回ture 是是 否否 否否 否否 4 图片成对加载并打乱 将图片成对的显示在场景中 并打乱主要用的是 Map 类 在该类中 用了一个数组以数 字标记的形式来记录加载的图片是哪种图片 在每次加载图片的时候是一张图片连续加载两 次 以保证加载图片成对 然后用数组的随机方法将数组打乱 5 判断两图是否能够相连 两图能相连的所有情况 1 2 3 4 5 6 8 类的设计类的设计 在设计连连看小游戏是 要编写 6 个 Java 源文件 Control java LoadAndSave java Model java GamePanel java ImageLoader java MainFrame java 1 Control java 监听器类 主要用于接收用户操作时发出的指令以及中转发送 2 LoadAndSave java 游戏数据部分 主要用于存储用户得分情况 以及载入时加载图片的算法 3 Model java 驱动类 用于处理接收到的用户动作指令 以及初始化时用到的一切算法 如 设置游 戏难度 图片可消除判断等 4 GamePanel java 绘制类 用于游戏是绘制选中时的边框 和连接两个相同图片的连线 public void showPath final Object obj new Thread new Runnable ArrayList points ArrayList obj ArrayList shapes new ArrayList int step 30 public void run 添加起点矩形 shapes add matrixToRect points get 0 添加终点矩形 shapes add matrixToRect points get points size 1 添加直线 for int i 1 i points size i Point p1 getCenter matrixToRect points get i 1 Point p2 getCenter matrixToRect points get i if p1 x p2 x int distance p2 y p1 y for int j 0 j Math abs distance j step shapes add new Line2D Double p1 new Point p1 x p1 y distance Math abs distance j else if p1 y p2 y int distance p2 x p1 x for int j 0 j Math abs distance j step shapes add new Line2D Double p1 new Point p1 x distance Math abs distance j p1 y shapes add new Line2D Double p1 p2 Graphics2D g2 Graphics2D getGraphics float dash 4F g2 setStroke new BasicStroke 2 0F BasicStroke CAP BUTT BasicStroke JOIN MITER 11 0F dash 1 0F for int index 0 index shapes size index try Thread sleep 10 catch InterruptedException e e printStackTrace for int pre 0 pre index pre if pre 2 g2 setColor Color BLUE else g2 setColor Color RED g2 draw shapes get pre start 效果如图 5 ImageLoader java 图片加载器 用于加载库中的图片 6 MainFrame java 主窗体绘制 所有游戏中可见窗体的绘制 7 项目层次结构图 9 9 算法设计算法设计 1 图片消除算法 for int i 0 i map length i for int j 0 j map 0 length j Rectangle rect matrixToRect i j if map i j 0 continue g drawImage ImageLoader getImageOf map i j rect x rect y null 2 图片加载算法 public class ImageLoader private static BufferedImage cursorImage private static BufferedImage icon private static final BufferedImage images new BufferedImage Model CARD NUMBERS 1 public static BufferedImage getCursorImage if cursorImage null 获得图片的编号 try URLClassLoader urlLoader URLClassLoader ImageLoader class getClassLoader URL url urlLoader findResource images cursor gif cursorImage ImageIO read url catch Exception e e printStackTrace return cursorImage public static BufferedImage getIconImage if icon null 加载图标 try URLClassLoader urlLoader URLClassLoader ImageLoader class getClassLoader URL url urlLoader findResource images QQ png icon ImageIO read url catch Exception e e printStackTrace return icon public static BufferedImage getImageOf int index if images index null 在已编号处加载图片 try URLClassLoader urlLoader URLClassLoader ImageLoader class getClassLoader URL url urlLoader findResource images index gif images index ImageIO read url catch IOException e e printStackTrace return images index 二二 主要问题主要问题 开始制作游戏时 主要解决的问题有以下几个方面 1 如何设置整个游戏的界面 2 如何控制连连看游戏中随机图片的生成切每种图片必须为偶数个 游戏开始后 判断鼠标两次点击的图片能否消去 即图片是否相同且图片之间路径的判断 3 如何判断游戏是否结束以及输赢的问题 三三 技术要求技术要求 本游戏软件可以在大多数计算机上运行 游戏中能正确判断鼠标两次点击的图片是否 可以消去 能正确判断游戏是否已经结束 四四 设计要求设计要求 1 1 开发环境开发环境 在 windows XP 系统下 JAVA 程序设计语言及相应的集成开发环境 利用 MyEclipse 实现 开发平台 jdk1 6 2 2 理论基础理论基础 1 熟悉JAVA语言基础 2 GUI编程 1 GUI 是 Graphical User Interface 的缩写 图形化用户界面 2 布局管理 FlowLayout 流式布局管理器 从左到右的顺序排列 BorderLayout 边界布局管理器 东 南 西 北 中 GridLayout 网格布局 管理器 事件处理机制 事件 用户对组件的一个操作 事件源 发生事件的组 件 监听器 我们需要处理某个事件 就需要在发生事件的组件上添加监听器 事件处理器 监听器中的方法 监听器被添加在组件上之后 组件上发生了对应 事 件就会执行指定方法 动作事件 ActionEvent 在某一组件上发生了定义好 的动作 例如按钮上鼠标点击 或按空格 菜单上鼠标点击或按回车等 3 MyEclipse 的操作 3 3 开发目标开发目标 系统能够提供友好的用户界面 使操作人员的心情放松 系统具有良好的运行效率 能够得到快速发现自我的目的 系统应有良好的可扩充性 可以容易的转入其它系统应用 平台的设计具有一定的灵活性 第四章第四章 游戏运行及测试分析游戏运行及测试分析 一一 程序运行情况程序运行情况 点击菜单中的开始游戏后的界面 连连看游戏规则很简单 就是点中两个互相匹配并且 可以通过不多于两个折点的折线连相同的图片 然后消去 下图是开始游戏后的界面效果 选择游戏难度 图 点击开始 开始当前难度游戏 如果不选择难度 则难度 1 到 9 随机 点击刷新则所有图片随机改变位置其总数不变 提示 可以根据算法随机提示一组可以消去的图片 点击演示 电脑将自动完成消除 每一步都有边框以及连线显示 直到所有方块消除完毕 图片由用户消除完毕 则如下图显示 由于用户每次只能消除一对图形 即只会用到一个最短路径 但由于实现并不知道用户 会选择哪一对图形 所以需要事先计算出所有可能的最短路径并保存起来 此外 采用这种 方法的话似乎每次用户消去一对相同图像之后都需要重新计算出当前所有可能被连接的相同 图形之间最短路径 这是因为当某些图像被消去之后可能会产生很多新路径 而我们又不能 确定这些空出来的格子到底能够影响哪些路径 所以就只好都重新计算一遍 二二 测试计划及分析测试计划及分析 1 1 检验的先后顺序检验的先后顺序 在检验两个方块能否消掉的时候 我们要让两个方块同时满足两个条件才行 就是两者 配对并且连线成功 所以 这里应该先检验配对 如果该条件不成立的话 就不要再进行连 线检查了 这样可以避免很多不必要的复杂运算 当然 如果你在做这个游戏的时候 配对 规则不够如此简单的话 那么就看哪个算起来麻烦就把它放在后面 2 2 程序异常处理程序异常处理 本程序没有涉及到程序的异常处理 只有关于 死锁 问题 本质上还是判别两个格子 是否可以消去的问题 最直接的方法就是 对于游戏中尚未消去的格子 两两都计算一下 它们是否可以消去 此外 从上面的广度优先搜索可以看出 我们每次都是扩展出起始格子 A x1 y1 能够到达的格子 也就是说 对于每一个格子 我们可以调用一次上面的扩展过程 得到所有可以到达的格子 如果这些格子中有任意一个跟起始格子的图形一致 则它们可以 消去 目前游戏我还没有发现 死锁 状态 结论结论 连连看 游戏的基本功能都已经实现了 其中很多变量之间数据的传递都很复杂 要 搞不明白就没办法再往下做了 路径判断问题中用到数据结构的知识 也很抽象 代码量也 很大 另外这个游戏不会用到数据库 所用功能也很少 只需要判断用户每次鼠标点击的坐 标以及当前坐标位置代表的图片内容就好了 通过这次 连连看 游戏的设计使我懂得了理论与实际相结合是很重要的 只有理论知 识是远远不够的 只有把所学的理论知识与实践相结合起来 从理论中得出结论 才能真正 的提高自己的水平 从而提高自己的实际动手能力和独立思考的能力 在设计的过程中遇到 问题 可以说得是困难重重 并且还发现了自己的许多不足之处 对以前所学过的知识理解 得不够深刻 掌握得不够牢固 同时在这次的设计中也小小的体验了一下做项目的感受 我完成了这次 JAVA 课程设计 不过这只是我学习路上的驿站 我相信我在未来的学习 中会记住从本次课程设计中所学到的东西 并将它用到未来的学习中去 致谢致谢 弹指一挥间 大学三年已经接近了尾声 三年的艰苦跋涉 两个月的精心准备 毕业设 计终于到了划句号的时候 心头照例该如释重负 但创作过程中常常出现的辗转反侧和力不 从心之感却挥之不去 毕业设计创作的过程并不轻松 各种压力的时时袭扰 知识积累的尚 欠火候 致使我一次次埋头于图书馆中 一次次在深夜奋力敲打键盘 第一次花费如此长的 时间和如此多的精力 完成一套设计作品 其中的艰辛与困难难以诉说 但曲终幕落后留下 的滋味 是值得我一生慢慢品尝的 在这里需要的感谢的人很多 是他们让我这大学三年从 知识到人格上有了一个全新的改变 感谢我的指导老师 够顺利完成毕业设计 离不开他的悉心指导 他对我的设计从确定 题目 修改直到完成 给予了我许多的指点和帮助 感谢他在繁忙的工作之余 挤出时间对 设计提出精辟的修改意见 在此 向老师致以最诚挚的谢意 最后我也要感谢我的母校三年来对我的培养 以及所有教给我知识的老师们祝你们工作 顺利 身体健康 祝母校的明天越来越美好 参考文献参考文献 1 张明新 周耿烈 Java 语言程序设计 重庆 重庆大学出版社 2004 2 周晓聪 李文军 李师贤 面向对象程序设计与 Java 语言 北京 机械工业出版社 2004 3 Bruce Eckel Java 编程思想 北京 机械工业出版社 2007 4 James Cohoon Jack Davidson Java 程序设计 北京 清华大学出版社 2005 5 Steven Holzner Java 技术内幕 北京 机械工业出版社 2002 6 张洪斌 Java 程序设计百事通 北京 清华大学出版社 2001 7 夏先波 Java JDK 实例宝典 北京 电子工业出版社 2007 8 吴其庆 Java 程序设计经典教程 北京 冶金工业出版社 2005 9 耿祥义 张跃平 Java 2 实用教程 北京 清华大学出版社 2007 10 蔡勇 姜磊 马宁 倪文志 Java 2 程序设计基础教程与上机指导 北京 清华大学 出版社 2005 11 林建素 孟康健 Eclipse 开发学习笔记 第 1 版 北京 电子工业出版社 2008 4 12 李松林 陈华清 任鑫 Eclipse 宝典 第 1 版 北京 电子工业出版社 2007 能人士的能人士的 50 个个习惯习惯 在行在行动动前前设设定目定目标标 有目标未必能够成功 但没有目标的肯定不能成功 著名的效率提升大师博思 崔西説 成功就是目标的达成 其他都是这句话的注释 现实中那些顶尖的成功人士不是成功了才设定目标 而是设定了目标才成功 一次做好一件事一次做好一件事 著名的效率提升大师博思 崔西有一个著名的论断 一次做好一件事的人比同时涉猎多个领域的人要好得多 富兰克林将自己一生的成就归功于对 在一定时期内不遗余力地做 一件事 这一信条的实践 培养重点思培养重点思维维 从重点问题突破 是高效能人士思考的一项重要习惯 如果一个人没有重点地思考 就等于无主要目标 做事的效率必然会十分低下 相反 如果他抓住了主要矛盾 解决问题就变得容易多了 发现问题发现问题关关键键 在许多领导者看来 高效能人士应当具备的 最重要的能力就是发现问题关键能力 因为这是通向问题解决的必经之路 正如微软总裁兼首席软件设计师比尔 盖茨所説 通向最高管理层的最迅 捷的途径 是主动承担别人都不愿意接手的工作 并在其中展示你出众的创造力和解决问题的能力 把把问题问题想透想透彻彻 把问题想透彻 是一种很好的思 维品质 只要把问题想透彻了 才能找到问题到底是什么 才能找到解决问题最有效的手段 不找借口不找借口 美国成功学家格兰特纳说过这样的话 如果 你有为自己系鞋带的能力 你就有上天摘星星的机会 一个人对待生活和工作是否负责是决定他能否成功的关键 一名高效能人士不会到处为自己 找借口 开脱责任 相反 无伦出现什么情况 他都会自觉主动地将自己的任务执行到底 要事第一要事第一 创设遍及全美的事务公司的亨瑞 杜哈提说 不 论他出多小两种能力是 第一 能思想 第二 能按事情的重要程度来做事 因此 在工作中 如果我们不能选择正确的事情去做 那么唯一正确的事情 就是停止手头上的事情 直到发现正确的事情为止 运运假公济私 那么你要尝试学习如何与不同的人相处 提高自己化 能人士的能人士的 50 个个习惯习惯 在行在行动动前前设设定目定目标标 有目标未必能够成功 但没有目标的肯定不能成功 著名的效率提升大师博思 崔西説 成功就是目标的达成 其他都是这句话的注释 现实中那些顶尖的成功人士不是成功了才设定目标 而是设定了目标才成功 一次做好一件事一次做好一件事 著名的效率提升大师博思 崔西有一个著名的论断 一次做好一件事的人比同时涉猎多个领域的人要好得多 富兰克林将自己一生的成就归功于对 在一定时期内不遗余力地做 一件事 这一信条的实践 培养重点思培养重点思维维 从重点问题突破 是高效能人士思考的一项重要习惯 如果一个人没有重点地思考 就等于无主要目标 做事的效率必然会十分低下 相反 如果他抓住了主要矛盾 解决问题就变得容易多了 发现问题发现问题关关键键 在许多领导者看来 高效能人士应当具备的 最重要的能力就是发现问题关键能力 因为这是通向问题解决的必经之路 正如微软总裁兼首席软件设计师比尔 盖茨所説 通向最高管理层的最迅 捷的途径 是主动承担别人都不愿意接手的工作 并在其中展示你出众的创造力和解决问题的能力 把把问题问题想透想透彻彻 把问题想透彻 是一种很好的思 维品质 只要把问题想透彻了 才能找到问题到底是什么 才能找到解决问题最有效的手段 不找借口不找借口 美国成功学家格兰特纳说过这样的话 如果 你有为自己系鞋带的能力 你就有上天摘星星的机会 一个人对待生活和工作是否负责是决定他能否成功的关键 一名高效能人士不会到处为自己 找借口 开脱责任 相反 无伦出现什么情况 他都会自觉主动地将自己的任务执行到底 要事第一要事第一 创设遍及全美的事务公司的亨瑞 杜哈提说 不 论他出多小两种能力是 第一 能思想 第二 能按事情的重要程度来做事 因此 在工作中 如果我们不能选择正确的事情去做 那么唯一正确的事情 就是停止手头上的事情 直到发现正确的事情为止 运运假公济私 那么你要尝试学习如何与不同的人相处 提高自己化 能人士的能人士的 50 个个习惯习惯 在行在行动动前前设设定目定目标标 有目标未必能够成功 但没有目标的肯定不能成功 著名的效率提升大师博思 崔西説 成功就是目标的达成 其他都是这句话的注释 现实中那些顶尖的成功人士不是成功了才设定目标 而是设定了目标才成功 一次做好一件事一次做好一件事 著名的效率提升大师博思 崔西有一个著名的论断 一次做好一件事的人比同时涉猎多个领域的人要好得多 富兰克林将自己一生的成就归功于对 在一定时期内不遗余力地做 一件事 这一信条的实践 培养重点思培养重点思维维 从重点问题突破 是高效能人士思考的一项重要习惯 如果一个人没有重点地思考 就等于无主要目标 做事的效率必然会十分低下 相反 如果他抓住了主要矛盾 解决问题就变得容易多了 发现问题发现问题关关键键 在许多领导者看来 高效能人士应当具备的 最重要的能力就是发现问题关键能力 因为这是通向问题解决的必经之路 正如微软总裁兼首席软件设计师比尔 盖茨所説 通向最高管理层的最迅 捷的途径 是主动承担别人都不愿意接手的工作 并在其中展示你出众的创造力和解决问题的能力 把把问题问题想透想透彻彻 把问题想透彻 是一种很好的思 维品质 只要把问题想透彻了 才能找到问题到底是什么 才能找到解决问题最有效的手段 不找借口不找借口 美国成功学家格兰特纳说过这样的话 如果 你有为自己系鞋带的能力 你就有上天摘星星的机会 一个人对待生活和工作是否负责是决定他能否成功的关键 一名高效能人士不会到处为自己 找借口 开脱责任 相反 无伦出现什么情况 他都会自觉主动地将自己的任务执行到底 要事第一要事第一 创设遍及全美的事务公司的亨瑞 杜哈提说 不 论他出多小两种能力是 第一 能思想 第二 能按事情的重要程度来做事 因此 在工作中 如果我们不能选择正确的事情去做 那么唯一正确的事情 就是停止手头上的事情 直到发现正确的事情为止 运运假公济私 那么你要尝试学习如何与不同的人相处 提高自己化 袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀

温馨提示

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

评论

0/150

提交评论