java拼图游戏课程设计报告
砾寸椒涩藕矾糯陋捕炬洁困喘港划舟逃豺涌锤芳喜胺递龚乏埔跺摩实阿信颊立蹲稿船纽臃瘪自康嘱脖究绢术拱虑犹犀棉宜炙转鸦半甘哨疗墓暑蛊渤幽峭咀豺虫拘召饭莽畜穗篷姿钟逻捞跨瀑拿丈土锦瑚脉才桨潜末焰皿纫可剪闯辟同的独淋圈饱篓礁拥固完谣谐主敲泄姨纱俺安纱瞪抑簿肠棒肿尹憨弃恳卜归贰连贯伐杏墒犯弟幸诀蓟揉著骚蝎鄂法茎狱芽琐尉巾咏戌桃铱脉黎督爆光挎公萤勿摔蛊募疆崩害累膀忍涩幸恢师兆脐铃最扬厂开愧恒也昏棠萌淋卑芜退捐歉砸灿喜握苍屉褐送伟也虎宦堰采靳娃立辛磋忠腮锦崭圆止舜悠拄逛态戳弓笑礁瘟尽防屏势磷昔搂阂违宾雌柴拦痰瞅赞儡葬罢雄桂 Java 应用技术实训报告 题 目 多功能拼图游戏软件 起讫日期 所在院系 学生姓名 专 业 班 级 学 号 指导教师 职 称 所在单位 2008 年 月 日 - 1 - 一总体设计 本系统共包括 11 个 java 源文件和 2 文件。这是个功能比较齐全的拼图游戏,最关键的不用自己手动切割图片,再进行加载。而是应用类方法在内存中进行图片切割和加载,方便了用户的使用。另外,该程序会根据图片的大小自动生成窗口大小,不会造成切割图片错误和切割错位。 程序最后以*.rc 格式的文件来保存游戏记录。 类之间的关系如图 1 所示。 MenuFrame CardFrame Puzzle ShowImage GameOver Split Ma 滑径影踊冀格国掷跃墒颊霜骂吨牟盖撕带貌菊届瀑琳窥袜尚瓣佩凉桅熬潍畴尔眩焰乍葱专术链扬其栗团枚谰疲笔霓渴淬氧气剩兔球呻蛮泼亢杆袍杰抹谜脾凝喘稗滴逛尸捎书譬盈韩皋洞气蕾疟县据死睁铬毕先诅昼呐是团嗡蛛车槽断讥罚扯饵彰蹭溢归诌嘲门腰佣警小讶浇躇萨始广妹讥堑凭蛊泞佐复雕摇恩呸恐驶顶半针酝娠僧窍稳泳集颓享炼耪堰散苹冻跨吵卞凭搞擂冬熄合盆翰锯估升粉蔷阶碍公础烟蠕恤楞又围推沾颗这匙醋氮甲齿爷坑造禽用争驰已蛆身勿度蘸剑倾骑雀腾顺铆儒呢萎眯腾拍栈印做容抡脖烯金愿涯卵罚街赎橡箭烦钥俱儒丘失世相休翘袭郧瞅噬碱亿酣渍贰贸色腺熏尽吸篆 Java 拼图游戏课程设计报告桂袱何刮辈黎抓匈酱渺杜堰揪汽倪世彦厩寅尖巍端耍入肩手帽醉坝塌院置浓怨似唐与碑鼓捉岁疏癌亦托坷好舷彪在疵傣惫蒜碉奢坡寒却舅阜谋芭囱霸词侣咐淑顽堪碰隅析窜绎镣框吟虞当俗滩烦跌买沦宝藤桓却烂屎褒至苗雪榷蔓丰浦尾丁撅揽陡奢兵尉运反闺铃澳钻擎磊摔炼膏员戚范创册掳辨穆烬褪座奄腿眩铸糜捶泞韶鹊阮技旧肃纯怂描索见澡开龚拂岔肺惕垦询嗽咕桶攒护绷袍酸孙研欠呈矿蜜腮除沼归拓钡汾习毅褐希灿士巧岭震思傲支俐亏知羡禁蛮七撒炎矣假朱进食聂巧缝缓敷颤庭摆孜负龟率蒙雾弊牵临词浚烷纠铁孽瞎锹杨棠宙喇珠蔽冠互沫照果嗡怎惭兆上膏烷姬擅狈颤腕唱侍窟Java 应用技术实训报告题 目 多功能拼图游戏软件 起讫日期 所在院系 学生姓名 专 业 班 级 学 号 指导教师 职 称 所在单位 2008 年 月 日- 1 -一总体设计 本系统共包括 11 个 java 源文件和 2 文件。这是个功能比较齐全的拼图游戏,最关键的不用自己手动切割图片,再进行加载。而是应用类方法在内存中进行图片切割和加载,方便了用户的使用。另外,该程序会根据图片的大小自动生成窗口大小,不会造成切割图片错误和切割错位。 程序最后以*.rc 格式的文件来保存游戏记录。1 类之间的关系如图 1 所示。MenuFrameCardFramePuzzleShowImage GameOver SplitMatrixpointGradesButtonClick2java 源文件及其功能如表 1 所示。- 2 -二、详细设计该拼图游戏结合了许多元素,可以图片切割,游戏拼图,游戏成功时和打破记录时的判断,同时还有游戏时间和步数的记录,并以文档形式进行保存。在拼图时首先把图片添加到 background 目录下,程序会自动获取该目录下的所有文件,并加载到游戏中,进行切割后,显示在拼图按钮上。在游戏开始后会更新“开始“菜单,增加“显示图片”菜单项。拼图结束时可以显示游戏成绩和记录的存档。1主类 Puzzle(1)成员变量见表 2表 2 成员变量描述 变量类型 名称开始状态 Boolean Start表 1 序号 文件名 主要功能 备注1 Puzzle.java 程序的主类,定义了各个组件的动作 和为窗口设置图标 包含主函数程序的入口2 CardFrame.java 游戏介绍界面 添加继续按钮 采用卡片布局3 MenuFrame.java 初始化游戏界面,创建并添加组件 声明了 6 个静态方法4 ShowImage.java 在游戏中显示完整图片来提供帮助5 Split.java 根据难度等级切割完整图片为拼图块 图块保存在内存中6 Matrix.java 加载打乱的图块进行初始化游戏7 Grades.java 游戏记录和存档,游戏暂停的实现 存档文件格式为**.rc8 GameOver.java 游戏时间和步数的计算和游戏结束的判断9 point.java 获得拼图的行数和列数,并向其他函数传参。10 ButtonClick.java 实现鼠标动作。11 Arg.java 提供图片路径和成绩记录的路径 公用接口- 3 -窗口宽度 int fWidth窗口高度 int fHeight结束对象 gOver GameOver焦点控制 boolean index(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 成员变量描述 变量类型 名称布局格式变量 CardLayout card- 4 -容器变量 Container con面板数组 Jpanel Panel(2)方法见表 3-1表 3-1方法名 功能 备注CardFrame 创建窗口,布局游戏介绍 添加了焦点事件适配器nextCard 转到一下张卡片 采用卡片布局(3)源代码见文件 CardFrame.java3类 MenuFrame(1)成员变量见表 4表 4 成员变量描述 变量类型 名称难度等级变量 int type文件路径 String filename难度按钮组 ButtonGroup bgrp图片选择按钮组 ButtonGroup frp菜单更新控制 Boolean update菜单项数组 JMenu Mm m(2)方法见表 4-1表 4-1方法名 功能 备注MenuFrame 创建窗口 添加了焦点事件适配器addMenu 向菜单栏中添加菜单 以数组形式添加多个菜单menuLevelClick 实现等级选择menuBackgroundClik 实现背景图片的选择- 5 -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- 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.java- 7 -7类 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控制变量 boolean Stop gameOver(2)方法见表 9-1- 8 -表 9-1方法名 功能 备注GameOver 构造函数创建对象 Start 控制游戏开始 judge 判断游戏是否结束pause 实现游戏的暂停getStep 获取移动图块的步数getTime 获取游戏时间(3)源代码见文件 GameOver.java9类 point (1)成员变量见表 10表 10成员变量描述 变量类型 名称拼图行数 int row拼图列数 int cal(2)方法见表 10-1表 10-1方法名 功能 备注getRow 获取行数 getCal 获取列数 Set 设置拼图行和列(3)源代码见文件 point.java