基于java的拼图游戏毕业设计内容摘要:

目组成,具体包括四个部分组成 —— Eclipse Platform、 JDT、 CDT 和 PDE。 7 JDT 支持 Java 开发、 CDT支持 C 开发、 PDE 用来支持插件开发, Eclipse Platform 则是一个开放的可扩展 IDE,提供了一个通用的开发平台。 它提供建造块和构造并运行集成软件开发工具的基础。 Eclipse Platform 允许工具建造者独立开发与他人工具无缝集成的工具从而无须分辨一个工具功能在哪里结束,而另一个工具功能在哪里开始。 本次程序中 环境为 ,同时运用了 eclipse 开发工具。 8 第三章 可行性分析及总体设计原则 可行性分 析所采用的方法和步骤 通过研究分析拼图游戏所具备的能力及实现的方法来确定主体结构。 利用现阶段我所能达到的能力,以最简洁、最容易的办法,边开发边测试边修改,实现一个初级游戏软件。 评价尺度 由于本软件是一个初级产品,对其要求不是太苛刻,所以能够保证达到拼图游戏的一般功能。 可行性分析 为避免开发失误,保证新系统的成功开发和运行,从技术、经济和社会三方面对本系统的可行性进行了分析和研究。 技术可行性 本系统的开发基于 Swing 技术的拼图游戏开发。 Swing 可以轻松开发功能丰富的应用程序。 现有的技术已较为成熟,硬件、软件的性能要求、环境条件等各项条件良好,利用现有技术条件可以达到该系统的功能目标。 本人在学校期间已经掌握 Java 设计思想和代码编写。 同时,考虑给予的开发期限也较为充裕,预计系统是可以在规定期限内完成开发的。 因此, java 拼图游戏具有技术可行性。 经济可行性 具有信息化的处理设施,并且拥有支持本系统的应用平台。 因此无需再投入资金购买其他设施。 系统的开发基于本人对程序开发的实践学习而来,无需资金投入,并且软件开发过程投入的成本不高,因此开发经费完全可以接受。 游戏开发成 功后可以提供娱乐、休闲等。 因此, java 拼图游戏开发也具有经济可行性。 社会可行性 本系统的社会可行性主要从法律因素、用户使用可行性两方面进行研究。 (1)法律因素 系统的软件设计是在独立的环境下完成的,无可供抄袭的软件产品。 9 (2)用户使用可行性 本系统对用户的要求,除了需要具备在 Microsoft Windows 平台上使用个人电脑的知识外,并不需要特别的技术能力。 在投入使用前,无需对操作系统的人员进行培训。 这样既减少投入成本又简化了操作环节。 因此, java 拼图游戏也具有社会可行性。 总体设计原则 本系统为了设计、实现和后期维护的方便,以及系统用户使用的便利,所以必须采取一定的设计原则。 其主要设计原则有: 简单性:在实现系统的功能的同时,尽量让系统操作简单易懂,这对于一个系统来说是非常重要的。 针对性:本系统设计是针对 java 拼图游戏的需求定向开发设计,所以具有专业突出和很强的针对性。 实用性:要求本系统能够满足 java 拼图游戏的需要,因此具有良好的实用性。 一致性:页面整体设计风格以及命名规则的一致性:整体框架和用图用色风格及变量、类名和其他元素的命名规则保持一致。 功能一致性:完成同 样的功能应该尽量使用同样的元素。 元素风格一致性:界面元素的美观风格、摆放位置在同一个界面和不同界面之间都应该是一致的。 变量命名规则的一致性:变量应该用统一的规则进行命名,做到任意变量均能从上下文推断其义。 先进性:本系统采用 eclipse 做为开发工具,使用 swing 技术开发,软件具有良好的兼容性和系统稳定性。 因此本设计具有良好的先进性。 [7][8] 10 第四章 需求分析 OOA 方法介绍 面向对象的分析方法( OOA),是在一个系统的开发过程中进行了系统业务调查以后,按照面向对 象的思想来分析问题。 OOA 与结构化分析有较大的区别。 OOA 所强调的是在 系统调查 资料的基础上,针对 OO 方法所需要的素材进行的归类分析和整理,而不是对管理业务现状和方法的分析。 在用 OOA 具体地分析一个事物时,大致上遵循如下五个基本步骤: 第一步,确定对象和类。 这里所说的对象是对数据及其处理方式的抽象,它反映了系统保存和处理现实世界中某些事物的信息的能力。 类是多个对象的共同属性 和方法集合的描述,它包括如何在一个类中建立一个新对象的描述。 第二步,确定结构( structure)。 结构是指问题域的复杂性和连接关系。 类成员结构反映了泛化 特化关系,整体 部分结构反映整体和局部之间的关系。 第三步,确定主题( subject)。 主题是指事物的总体概貌和总体分析模型。 第四步,确定属性( attribute)。 属性就是数据元素,可用来描述对象或分类结构的实例,可在图中给出,并在对象的存储中指定。 第五步,确定方法( method)。 方法是在收到消息后必须进行的一些处理方法:方法要在图中定 义,并在对象的存储中指定。 对于每个对象和结构来说,那些用来增加、修改、删除和选择一个方法本身都是隐含的(虽然它们是要在对象的存储中定义的,但并不在图上给出),而有些则是显示的。 [9][10] 功能需求 用户对于该拼图游戏的需求主要体现在以下几个功能: 1. 实现程序 GUI 图形界面; 2. 实现游戏开始、重来、退出等功能; 3. 实现鼠标或键盘事件响应模块的功能; 4. 实现游戏主要算法; 5. 实现输赢自动判别功能; 6. 实现查看原图功能; 环境需求 11 操作系统可以有以下几种: Win XP/Win Vista/Win 7。 硬件要求:奔腾四处理器,主频 , 512M 以上内存。 可靠性需求 要保证该拼图游戏软件的稳定性,要在完成软件设计后进行软件稳定性测试,检测出该软件发生故障的概率。 用户界面需求 利用 Java Swing 组件对该游戏软件的界面进行设计与实现,实现程序 GUI 图形界面,做到界面设计简洁大方,时尚新颖,适合各类用户群体使用。 软件成本消耗与开发进度需求 由于该软件只作为毕业设计,用于考察学生对于 Java Swing 组件的理解与应用能力,并未涉及软 件的市场推广等工作,且开发该游戏的软件不需付费,属于零成本,所以暂不用考虑软件的成本消耗。 开发进度严格遵守任务书中的毕业设计 (论文 )进度计划。 条件假定和限制 由于本软件目前是基础版本,未做到尽善尽美。 如果用户需要提高版本,本软件需要根据游戏者的要求进行进一步的修改。 12 第五章 系统分析 业务流程分析 在进行业务流程分析时,需要按照原有信息流动过程,逐个地调查分析所有环节的处理业务、处理内容、处理顺序和对处理时间的要求,弄清各个环节需要的信息、信息来源、流经去向、处理 方法、计算方法、提供信息的时间和信息形态。 业务流程分析可以帮助开发者了解该业务处理过程,发现和处理系统调查工作中的错误和疏漏。 java 拼图游戏的具体的业务流程图,流程如图 所示。 图 总体设计方案 游戏非常的简单,当运行程序后, 在登录游戏界面后,设计本程序能够载入默认图片,程序为 4*4 的 16 格。 在本程序中,对于图片的拼凑、判断图片是否可以移动等都是设计的关键。 总体设计方案中主要说明判断拼图是否成功这点的设计。 把分好的图片存储到一个 image 数组中,对于 可移动的块其实是按钮,每个按钮上都有一个 icon,通过随机把 image数组中的图片通过 imageIcon 的转化后附给一个按钮,并将按钮数组首先附给一个向量,然后用随机数来确定对应向量的值,然后再附给对应数组按钮,同时去除该值。 也就是说在附值的时候图片顺序不变, 13 变的而是数组按钮的顺序。 对于图片的是否拼图成功的提示,主要是在每个按钮中加个 String 的属性值,而且对于正确的排序的值与正在排的各个值比较,一旦所有的按钮对应的值与正确的排序一致,则为成功。 游戏功能分析 程序运行主窗口显示程序界面,点击“ 开局”按钮后开始游戏,拼图过程中,可以再次点击“开局”按钮重新随机排列图片重新开始游戏,或者点击“下一张”加载另外一张图片。 14 第六章 系统设计 系统功能设计 运行程序直接进入程序界面,点击“开局”按钮后开始游戏,再次点击可以重新开始游戏,点击“下一张”进入下一张图片。 如图 所示 图 模块流程图 系统重点设计 这是 程序运行后显示出来的界面,包括了原图,已经载入排列好的图片,点击“开局”打乱图片开始游戏,点击“下一张”换图片。 一共有 5 套图片可以选择,如图 所示。 图 程序运行开始效果 这个程序大致跟 win7 桌面的拼图小游戏功能相同,在这里重要的介绍一下,图片的 15 载入排列,换下一张图片,开始游戏后打乱排列图片的算法和拼图过程中交换图片的算法。 开局载入图片 用修图软件一共裁剪了 5 张图片,裁剪成 15 张小块的图片和另外一张白色的小图,每个图片的原图由“ ”的格式命名,白色的小图用“ ”的格式命名,裁剪成的 15块小图由“ ”的格式命名,依次按大小命名图片, x的值的范围为 04, y 和z的取值范围为 03。 如图 所示。 图 裁剪图片的编号命名 根据图 所示,把网格布局管理器设置为一个 4*4 的网格,用一个二维数组来摆放图片的位置,根据上文的命名规则, y 代表行数, z 代表列数,通过嵌套 for 循环来把裁剪好的小图依次放入网格中。 最后排列得出图 所示的效果。 图 网格图示例 部分代码: private String[][] order() { String[][] exactnessOrder = new String[4][4]。 for (int row=0。 row4。 row++) { 16 for (int col=0。 col4。 col++) { exactnessOrder[row][col] = image/+ num+ row+ col+ .jpg。 } } return exactnessOrder。 } class StartButtonAction implements ActionListener { public void actionPerformed(ActionEvent e) { String[][] stochasticOrder = reorder()。 int i= 0。 for (int row=0。 row4。 row++) { for (int col=0。 col4。 col++) { JButton button = (JButton) (i++)。 (new ImageIcon(stochasticOrder[row][col]))。 if(stochasticOrder[row][col].equals(image/+ num+ )) emptyButton=button。 } } } } 随机排列图片 点击“开局”后, 程序用嵌套 for循环把裁剪好的图片依次放入一个二维数组中,再在另外一个嵌套 for 循环中随机出 16 个网格中的行数。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。