logo资料库

java_扫雷游戏课程设计报告.doc

第1页 / 共12页
第2页 / 共12页
第3页 / 共12页
第4页 / 共12页
第5页 / 共12页
第6页 / 共12页
第7页 / 共12页
第8页 / 共12页
资料共12页,剩余部分请下载后查看
1.设计内容及要求
1.1 扫雷游戏的基本要求
1.2 需实现的主要功能
2.需求分析
2.1 扫雷棋盘的布局设计
2.2 雷区的设计
2.3 音效的设计
2.4 排行榜设计
3.总体设计
3.1 总体功能图
3.2 总体流程图
4.主要功能设计流程
4.1雷区设计流程图
4.2音效设计流程图
4.3 排行榜设计流程图
5.代码实现
5.1 类之间关系图
5.2 运行效果图
5.3 程序打包发布过程
6.总结与说明
7.部分原代码(见附录2)
Java 课程设计报告 姓 学 院 班 专 名 号 系 级 业 胡建新 罗云 冯亮 20074390127 20074390126 20074390124 南华大学信息与计算科学 071 班 计算机科学与技术专业 指导教师 贺慧琳 1.设计内容及要求 1.1 扫雷游戏的基本要求 Windows 2000/XP 系统提供的扫雷游戏是一个很有趣的游戏。本章的课程设 计使用 Java 语言编写一个与其类似的扫雷游戏。具体要求如下: (1) 扫雷游戏分为初级、中级和高级三个级别,扫雷英雄榜存储每个级别的
最好成绩,即挖出全部的地雷且用时最少者。单击游戏菜单可以选择“初级”、 “中级”和“高级”或“查看英雄版”。 (2) 选择级别后将出现相应级别的扫雷区域,这是用户使用鼠标左键单击雷 区中任何一个方块便启动计时器。 (3) 用户要揭开某个方块,可单击它。若所揭方块下有雷,用户便输了这一 局,若所揭方块下五雷,则显示一个数字,该数字代表方块的周围的 8 个方块中 共有多少颗雷。 (4) 如果用户认为某个方块下埋着雷,单击右键可以在方块上标识一个用户 认为是雷的图标,即给出一个扫雷标记。用户每标记出一个扫雷标记(无论用户 的标记是否正确),程序将显示的剩余雷数减少一个。 (5) 扫雷胜利后(用时最少者),程序弹出保存成绩的对话框。 (6)用户可以选择标记疑问的方块,用可以勾选游戏菜单下的标记(或者用 快捷键 alt+G 然后 M)即可,此时双击右键并可出现“?”标记。另有颜色选项, 当用户勾选此项时,游戏将以最低图像像素来显示。 (7)如果用户需要即使提示声,并可选中声音选项,此时将听到计时的卡塔 声。当用户点中雷时,将有爆炸声产生,胜利时,将有凯旋的旋律播放,此时企 鹅出现欢悦表情。 1.2 需实现的主要功能 (1) 用户可以自定义级别并且可以任意输入雷数; (2) 具有计时功能,即显示用户完成移动盘子所花费的时间; (3) 用户可以选择是否有音效; (4) 自动保存扫雷英雄榜; 2.需求分析 2.1 扫雷棋盘的布局设计 系统的整体布局为:CardLayout 布局, 采用了菜单、按钮、面板…等组件, 菜单主要包括开始,选择级别,标记,扫雷英雄榜,退出, 按钮的功能是重新 开始新的游戏。 2.2 雷区的设计 MineArea 类是 javax.swing 包中 Jpanel 容器的子类,实现了 ActionListener 和 MouseListener 接口,所创建的对象:mineArea 是 MineGame 类中最重要的成 员之一,作为一个容器添加到 MineGame 窗口的中心。标明 MineArea 类的主要成 员变量、方法以及和 MineGame 类之间组合关系的 UML 图如图 2-1 所示。
图 2-1 MineArea 类的 UML 图 以下是 UML 图中有关数据和方法的详细说明。 1、成员变量 (1)block 是 Block 类型的数组,用来确定雷区有多少需进行扫雷的方块。 (2)blockView 是 BlockView 类型的数组,负责为 block 数组中的 Block 对象提 供视图。 (3)lay 是 LayMines 类型的对象,负责设置 block 数组中的哪些方块是雷或不 是雷。 (4)record 负责提供保存成绩的界面,是一个对话框,默认不可见。用户只有 扫雷成功后(用时最少),才可以看见对话框。 (5)reStart 是一个按钮对象,用户单击它重新开始游戏。 (6)time 是计时器对象,负责计算用户的用时。 2、方法 (1)initMineArea(int,int,int,int)方法可根据参数提供的数据设置雷区 的宽度、高度、雷的数目以及雷区的级别。 (2)actionPerformed(ActionEvent)是 MineArea 类实现的 ActionListener 接 口 中 的 方 法 。 当 用 户 单 击 blockView 中 的 某 个 方 块 时 , actionPerformed(ActionEvent)方法负责执行有关算法,例如,当用鼠标左键单 击方块上的按钮后,若该方块下有雷,actionPerformed(ActionEvent)方法将使 用户输掉本局,若该方块下无雷,actionPerformed(ActionEvent)方法将显示 blockView 对象中的标签,该标签上是一个数字,该数字代表当前方块的周围的 8 个方块中共有多少颗雷。 (3)show()方法是一个递归方法。actionPerformed(ActionEvent)方法执行 时将调用 show 方法进行扫雷。 (4)mousePressed(MouseEvent)方法是 MineArea 类实现的 MouseListener 接 口中的方法,当用户按下鼠标有件事 mousePressed(MouseEvent)方法负责让方 块上显示一个探雷标记。 (5)inquireWin()方法用来判断用户是否扫雷成功,如果成功该方法负责让
record 对话框可见。所谓扫雷成功是指不仅找到了全部的累而且用时最少。 综上所述,MineArea 创建的扫雷区域效果如图 2.2.2 所示。 2.3 音效的设计 music 类是 java.awt 包中 Frame 的子类,通过构造音效声音方法,在 MainFrame 主类中,通过 ActionListener 来监视是否已开始游戏,来决定播放 计时声,之后又通过 ActionListener 来监视是否踩到雷和是否完成来决定, 播放相应的音乐。下面标明 music 类的主要成员变量、方法以及和 MineFrame 类之间组合关系的 UML 图如图 2-2 所示。 图 2-2 MineArea 类的 UML 图 2.4 排行榜设计 LogDialog 是 javax.swing 包 中 Jdialog 对 话 框 的 子 类 , 并 实 现 了 ActiongListener 接口。LogDialog 创建的对象 dialog 是 MainFrame 类(主类) 的成员之一,当用户选择查看“英雄榜”菜单项时,该对话框可见,提供了查看 扫雷的 最好成绩的界面。标明 LogDialog 类的主要成员变量、方法以及 和 MainFrame 类之间组合关系的 UML 图如图 2-3 所示。 图 2-3 LogDialog 类的 UML 图
3.总体设计 3.1 总体功能图 图 2-4 总体功能图
3.2 总体流程图 图 2-5 总体流程图
4.主要功能设计流程 4.1 雷区设计流程图 图 2-6 雷区设计流程图
4.2 音效设计流程图 图 2-7 音效设计流程图 4.3 排行榜设计流程图 图 2-8 排行榜设计流程图
分享到:
收藏