




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java应用技术实训报告题 目 多功能拼图游戏软件 起讫日期 所在院系 学生姓名 专 业 班 级 学 号 指导教师 职 称 所在单位 2008年 月 日一总体设计 本系统共包括11个java源文件和2文件。这是个功能比较齐全的拼图游戏,最关键的不用自己手动切割图片,再进行加载。而是应用类方法在内存中进行图片切割和加载,方便了用户的使用。另外,该程序会根据图片的大小自动生成窗口大小,不会造成切割图片错误和切割错位。 程序最后以*.rc格式的文件来保存游戏记录。1 类之间的关系如图1所示。MenuFrameCardFramePuzzleShowImageGameOverSplitMatrixpointGradesButtonClick2java源文件及其功能如表1所示。表1 序号文件名主要功能备注1Puzzle.java程序的主类,定义了各个组件的动作和为窗口设置图标包含主函数程序的入口2CardFrame.java游戏介绍界面 添加继续按钮采用卡片布局3MenuFrame.java初始化游戏界面,创建并添加组件声明了6个静态方法4ShowImage.java在游戏中显示完整图片来提供帮助5Split.java根据难度等级切割完整图片为拼图块图块保存在内存中6Matrix.java加载打乱的图块进行初始化游戏7Grades.java游戏记录和存档,游戏暂停的实现存档文件格式为*.rc8GameOver.java游戏时间和步数的计算和游戏结束的判断 9point.java 获得拼图的行数和列数,并向其他函数传参。10ButtonClick.java实现鼠标动作。11Arg.java提供图片路径和成绩记录的路径公用接口二、详细设计该拼图游戏结合了许多元素,可以图片切割,游戏拼图,游戏成功时和打破记录时的判断,同时还有游戏时间和步数的记录,并以文档形式进行保存。在拼图时首先把图片添加到background目录下,程序会自动获取该目录下的所有文件,并加载到游戏中,进行切割后,显示在拼图按钮上。在游戏开始后会更新“开始“菜单,增加“显示图片”菜单项。拼图结束时可以显示游戏成绩和记录的存档。1主类Puzzle(1)成员变量见表2表2 成员变量描述变量类型名称开始状态BooleanStart 窗口宽度intfWidth窗口高度intfHeight结束对象gOverGameOver焦点控制booleanindex(2)方法见表2-1表2-1方法名功能备注Puzzle()创建游戏窗口和设置图标StartGame()开始游戏控制,更新开始菜单endgame()结束游戏控制弹出结束窗口FrameLoseFocus()使窗口失去焦点事件FrameGetFocus ()使窗口得到焦点事件menuNewClick()进行切割图片调用类 spite()menuGradesClick()实现分数记录和显示调用类 Class GradesmenuShowClik()在游戏中显示完整图片调用类 class ShowImagemenuExit()退出游戏menuHelpClik()实现帮助功能以弹出式对话框设计menuAboutClik()实现关于功能介绍了相关信息和作者(3)源代码见文件Puzzle.java2类CardFrame(1)成员变量见表3表3 成员变量描述变量类型名称布局格式变量CardLayoutcard容器变量Containercon面板数组JpanelPanel(2)方法见表3-1表3-1方法名功能备注CardFrame()创建窗口,布局游戏介绍 添加了焦点事件适配器nextCard()转到一下张卡片采用卡片布局(3)源代码见文件CardFrame.java 3类MenuFrame(1)成员变量见表4表4 成员变量描述变量类型名称难度等级变量inttype文件路径Stringfilename难度按钮组ButtonGroupbgrp图片选择按钮组ButtonGroupfrp菜单更新控制Booleanupdate菜单项数组JMenuMm m(2)方法见表4-1表4-1方法名功能备注MenuFrame()创建窗口添加了焦点事件适配器addMenu()向菜单栏中添加菜单以数组形式添加多个菜单menuLevelClick()实现等级选择menuBackgroundClik()实现背景图片的选择getType()返回一个难度等级getFilename()获取图片的名字initMenuBegin()初始化开始按钮并设置快捷键同时给出了选择 菜单后的相应动作initMenuBackground()初始化背景菜单initMenuAbout()初始化关于菜单initMenuOpition()初始化选择菜单initMenuLevel()初始化等级菜单以选择框形式选择等级updadeMenuBegin()游戏开始后更新开始菜单比原来增加了显示图片菜单项(3)源代码见文件MenuFrame.java4类ShowImage(1)成员变量见表5表5成员变量描述变量类型名称无成员变量(2)方法见表5-1表5-1方法名功能备注ShowImage()创建显示图片的窗口在游戏中提供帮助使用(3)源代码见文件ShowImage.java5类Split (1)成员变量见表6表6成员变量描述变量类型名称难度等级Int HARD NORML EASY路径名称 string Filename path (2)方法见表6-1表6-1方法名功能备注Spilt()创建 Spilt对象 Set()创建存档文件BufferedImage divid把背景图片切割成拼图块用到了awt.image. BufferedImage里的系统类get()获得Spilt对象(3)源代码见文件Split.java6类Matrix (1)成员变量见表7表7成员变量描述变量类型名称 面板 Jpanel panel 拼图行数 int row 拼图列数 Int cal(2)方法见表7-1表7-1方法名功能备注 Matrix() 创建图块所在的按钮并加监听 且添加到面板中 Init() 实现图块的随机排列 打乱了图块的顺序(3)源代码见文件Matrix.java7类Grades (1)成员变量见表8表8成员变量描述变量类型名称 自定义类 Data Data 拼图步数 Int step 拼图计时 Int time(2)方法见表8-1表8-1方法名功能备注 Grades() 构造函数 creatData() 生成拼图记录的文件 readData()读取已经存在的记录以.rc格式保存记录的数据Set()记录游戏的数据有打破记录的判断Show()显示记录(3)源代码见文件CardFrame.java8类GameOver (1)成员变量见表9表9成员变量描述变量类型名称 移动步数 int step 游戏时间 long counttime 开始时间 long now控制变量booleanStop gameOver(2)方法见表9-1表9-1方法名功能备注 GameOver() 构造函数创建对象 Start() 控制游戏开始 judge()判断游戏是否结束pause() 实现游戏的暂停getStep() 获取移动图块的步数getTime()获取游戏时间(3)源代码见文件GameOver.java9类point (1)成员变量见表10表10成员变量描述变量类型名称 拼图行数 introw 拼图列数 int cal(2)方法见表10-1表10-1方法名功能备注 getRow() 获取行数 getCal() 获取列数 Set()设置拼图行和列(3)源代码见文件point.java 10. 类ButtonClick (1)成员变量见表11表11成员变量描述变量类型名称 按钮 JButton Button 行数和列数 Int Row cal 结束标志 boolean end (2)方法见表11-1表11-1方法名功能备注 ButtonClick() 获取各个参数 6个参数 actionPerformed() 实现相应的鼠标动作 (3)源代码见文件ButtonClick.java 11类Arg(1)成员变量见表12表12成员变量描述变量类型名称 图片路径接口 String path 记录文件接口 String rc (2)代码见文件Arg.java三运行效果游戏启动后的初始界面 图1 图1选择“关于”菜单下的 “帮助“ 菜单弹出如下对话框:图2图2选择“关于”菜单下的 “关于“ 菜单弹出如下对话框:图3图3选择 难度级别 中级和背景图片,按开始后就可进入游戏画面如图4图4在游戏过程中 可以按“开始”菜单下面的“显示图片”来查看完整图片 如图5 图5游戏成功后会显示你游戏所用时间和移动图块的步数 如图6图6如果你的游戏时间打破记录就会首先显示如下画面 如图7 图7输入名字后 ,按确定就可以查看所有成绩排名了如图8(也可以通过“开始”菜单下的“分数排名”来查看成绩)图8所有游戏截图完毕 四工作总结 经过这段时间的学习我收获不小,总结起来有如下几点:1 更进一步理解了JAVA编程的思想,体会到JAVA与其他编程语言的不同。对于这种面向对象的编程思想,使刚入门的人很快就能写出自己的程序。2 锻炼了自己的动手和自学能力,在编程中有许多类和方法在课本中没有学到和提及到。都是通过自己查帮助文档,或通过网络进行学习和了解到的。和别人在一起交流是一件很快了的事。3
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 肉品加工厂汇报
- 公司的合并与分立课件
- 水电站运行人员年终总结
- 《美丽的青花瓷》课件
- 《美丽的吻》课件
- 《绞刑架下的报告》课件
- 脑出血的初期康复护理
- 药店个人工作总结
- 新员工培训人力政策解读
- 装饰施工员年终工作总结
- 三体系培训课件
- 带状疱疹疼痛的护理
- 【基于PLC的污水处理控制系统设计、实现及调试14000字(论文)】
- 2025-2030中国医院经营管理模式与创新发展规划研究报告
- 儿童过敏性鼻炎的护理措施
- 如何避免院内交叉感染
- 中粮品牌管理制度
- 肠造口护理质量敏感性指标体系构建研究
- 2025年自学考试《00504艺术概论》考试复习题库(含答案)
- 水洗砂劳务承包协议书
- 韩语TOPIK1级词汇基础与语法练习试卷
评论
0/150
提交评论