扫雷游戏课程设计报告整合

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
例如,方格中出现 1,说明上下左右及斜角合计有一颗雷,依次类推,2 则有 2 颗, 3 则有 3 颗。
1.1.3 游戏具有的功能
I.能够显示主菜单和界面 游戏需要提供主菜单让玩家进行游戏设置,同时能够显示当前剩余的地雷数量及当
前花费时间等相关信息到界面上。 II.能够接收鼠标输入功能
能够接收玩家的鼠标输入功能,左键和右键输入。 III. 能够根据规则翻转相应的格子
-4-
2.2 MineArea 类
MineArea 类是 javax.swing 包中 JPanel 容器的子类,实现了 ActionListener 和 MouseListener 接口,所创建的对象:mineArea 是 MineGame 类中最重要的成员之一,作为 一个容器添加到 MineGame 窗口的中心。标明 MineArea 类的主要成员变量、方法以及和 MineGame 类之间组合关系的 UML 图如图 2-2 所示。
-1-
ShowRecord.java.扫雷游戏除了需要编写上述 8 个 Java 源文件所给出的类外,还需要 Java 系统提供的一些重要的类,例如 File、JButton 和 JLabel 等类。扫雷游戏所用到的一些重 要的类以及之间的组合关系如图 1-1 所示,系统功能图如图 1-2 所示。
1.2.8 userDefine 类 userDefine 类 是 JDialog 对话框的子类,当用户想自定义扫雷难度时,
ShowRecord 对象负责设置用户想要的难度设置。
-3-
2 详细设计 2.1 MineGame 类
MineGame 类是 javax.swing 包中 JFrame 的一个子类,并实现了 ActionListener 接口。 标明该类的只要成员变量和方法的 UML 图如图 2-1 所示。
1.2.4 BlockView.java
BlockView 是 JPanel 容器的子类,BlockView 创建的对象负责为 Block 对象提供视图, 以方便用户通过该视图与 Block 对象交互。
1.2.5 LayMines.java
LayMine 类对象不需要视图,在游戏中不需要看见该类。LayMine 对象使用随机算法 指定 MineArea 对象中的哪些 Block 对象是雷,哪些 Block 对象不是雷。
JPanel
ActionListener
MouseListener
MineArea
row,colum,mineCount,markMount: int lay: LayMines
block:Block[][]
record: Record
blockView:BlockView[][]
resStart: JButton
1.2.6 Record.java
Record 类是 JDialog 对话框的子类,对用户扫雷成功时,Record 对象负责保存用户 的成绩到文件。
1.2.7 ShowRecord.java
ShowRecord 类是 JDialog 对话框的子类,当用户查看扫雷的最好成绩时,ShowRecord 对象负责提供读取文件数据的界面。
法,该方法负责执行菜单发出的有关命令。用户选择菜单中的菜单项可触发 ActionEvent 事件,导致 actionPerformed(ActionEvent)方法执行相应的操作,例 如将 mineArea 创建的雷区设置为初级、中级、高级。 C. main(String[])方法是程序运行的入口方法。
图 2-1 MineGame 类的 UML 图
以下是 UML 图中有关数据和方法的详细说明。 1) 成员变量 a. bar 和 fileMenu 提供菜单操作,单击游戏菜单项为“开始”、“初级”、“中级”、“高级”、
“扫雷英雄榜”、“自定义”和“退出”。单击帮助菜单项为“关于”。 b. mineArea 是扫雷区域,提供有关扫雷的主要功能。 c. “英雄榜”负责存放三个级别的扫雷最好成绩。 d. showHeroRecord 负责显示英雄榜中的数据。 2) 方法 A. MineGame()是构造方法,负责完成窗口的初始化。 B. ActionPerformed(ActionEven)方法是 MineGame 类实现的 ActionListener 接口中的方
指导教师(签名):
20 年 月 日
目录
1 需求与总体设计……………………………………………………………………………1 1.1 需求分析………………………………………………………………………1 1.2 总体设计………………………………………………………………………1 2 详细设计…………………………………………………………………………………4 2.1 MineGame 类………………………………………………………………………4 2.2 MineArea 类………………………………………………………………………5 2.3 Block 类………………………………………………………………………6 2.4 BlockView 类………………………………………………………………………7 2.5 LayMines 类………………………………………………………………………8 2.6 Record 类………………………………………………………………………8 2.7 ShowRecord 类……………………………………………………………………9 2.8 userDifine 类………………………………………………………………………9 3 编码实现…………………………………………………………………………………11 3.1 MineGame 类……………………………………………………………11 3.2 MineArea 类………………………………………………………………14 3.3 Block 类………………………………………………………………………17 3.4 BlockView 类………………………………………………………………………18 3.5 LayMines 类………………………………………………………………………19 3.6 Record 类………………………………………………………………………20 3.7 ShowRecord 类…………………………………………………………………21 3.8 userDifine 类………………………………………………………………………24 4 系统测试…………………………………………………………………………………26 总结…………………………………………………………………………………30
全部的地雷且用时最少者。游戏菜单可以选择“初级”,“中级”和“高级”或“查看英雄榜”。
2.选择级别后将出现相应级别的扫雷区域,这时用户使用鼠标左键单击雷区中的任何一个方
块启动计时器。
3.用户要揭开某个方块,可单击它。若所揭方块下有雷,用户便输了这一局,若所揭方块下
无雷,则显示数字,该数字代表方块周围的八个方块中共有多少颗雷。
showTime: JTextField
MineGame 类负责创建扫雷游戏主窗口,该文件含有 main 方法。扫雷游戏从该类开始 执行。
1.2.2 MineArea.java
MineArea 类创建的对象是 MineArea 类最重要的成员之一,代表“扫雷区域”。
1.2.3 Block.java
Block 类是雷区中“方块”的类封装,含有关于“方块”的属性以及操作,即负责为 雷区创建代表“方块”的 Block 对象。
MineGame
File
MineArea
ShowRecord
Block
BlockView
LayMines
Record
JButton
JLabel
图 1-1 类之间的组合关系
userDefine
帮助
扫雷游戏主界 游戏
重新开始

于开




扫始






图 1-2 功能图

退



-2-
1.2.1 MineGame.java(主类)
面向对象程序设计 课程设计任务书
一、设计(调查报告/论文)题目 扫雷游戏设计
二、设计(调查报告/论文)主要内容 内容: Windows 系统提供的扫雷游戏是一个很有趣的游戏。这里使用 Java 语言编写一个与
其类似的扫雷游戏。
基本功能与要求: 1.扫雷游戏分为初级,中级和高级三个级别,扫雷英雄榜存储每个级别的最好成绩,即挖出
1.1 需求分析
1 需求与总体设计
1.1.1 扫雷游戏概述
扫雷是一种具有迷惑性的对记忆和推理能力的简单测试,它是长久以来最受欢迎的 Windows 游戏之一。游戏目标:找出空方块,同时避免触雷。
1.1.2 扫雷的操作方法
游戏主区域由很多个方格组成。使用鼠标随机点击一个方格,方格即被打开并显示 出方格中的数字;方格中数字则表示其周围的 8 个方格隐藏了几颗雷;如果点开的格子 为空白格,即其周围有 0 颗雷,则其周围格子自动打开。
翻动指定位置的格子。 IV. 能够标示指定格子的功能
即能够对确定或者怀疑是地雷的格子进行"旗子"和"?"符号的标示。 V.游戏胜负判断功能
当玩家单击的格子中有地雷时,判定玩家失败,游戏结束。当扫雷游戏中全部格子 被打开时,判定玩家成功。 VI 英雄榜记录更新
当有玩家把当前等级的地雷全部扫出来后,并且时间比记录中的时间短时,在结束 游戏时,要求玩家把名字保存下来。游戏初始时时间为 999 秒。
《 面向对象程序设计》 课程设计报告
题 目: 院 (系): 专业班级: 学生姓名: 学 号: 指导教师:
扫雷游戏设计 计算机与电子系 计算机科学与技术 0903 班 ============ ============
=======
20 12 年 6 月 4 日至 20 12 年 6 月 15 日 华中科技大学武昌分校制
JFrame
ActionListener
MineGame bar: JMenuBar; fileMenu, heipMenu: JMenu 开始,初级,中级,高级,英雄榜,自定义,退出,关于:JMenuItem mineArea: MineArea 英雄榜: File showHeroRecord: ShowRecord MineGame(): 无类型 actionPerformed(ActionEvent) main(String[]): void
4.如果用户认为某个方块下埋有地雷,单击右键可以在方块上标识一个用户认为是雷的图标,
即给出一个扫雷标记。用户每标记出一个扫雷标记(无论用户标记是否正确),程序将显示剩余雷数 减少一个。
5. 扫雷胜利后(用时最少者),程序弹出保存成绩对话框。
三、原始资料 1.《面向对象程序设计课程设计》指导书 2. 耿祥义.JAVA 大学实用教程.北京:清华大学出版社,2009.
四、要求的设计(调查/论文)成果 1.课程设计报告 2.课程设计软件
五、进程安排 布置任务,查找资料、需求分析 1 天 总体设计 1 天 详细设计 1.5 天 编制源程序实现 3.5 天 测试与修改 1 天 撰写课设报告 2 天
六、主要参考资料 [1] 张广彬. Java 课程设计案例精编(第二版).北京:清华大学出版社, 2011. [2] 耿祥义. Java 课程设计(第二版).北京:清华大学出版社, 2008. [3] 耿祥义.JAVA 大源自文库实用教程.北京:清华大学出版社,2009. [4] 邹林达.陈国君 Java2 程序设计基础.北京:清华大学出版社,2010. [5] 邹林达.Java2 程序设计基础实验指导.北京:清华大学,2010.
例如,当第一个玩家把全部地雷扫出来的时间为 120 秒,这时玩家的记录时间将被 保存下来并作为记录时间线。直到有玩家的时间少于 120 秒,才能更新当前记录时间线 并保存玩家的名字。
1.2 总体设计
在设计扫雷游戏时,需要编写 8 个 Java 源文件:MineGame.java、MineArea.java、 Block.java 、 BlockView.java 、 userDefine.java 、 LayMines.java 、 Record.java 和
相关文档
最新文档