1、 I Java 课程设计报告 设计题目:设计题目:扫雷游戏扫雷游戏 专 业 班 级 学 生 学 号 指导教师 起止时间 2013 年 6 月 II Java 程序课程设计程序课程设计 一一设计内容及要求设计内容及要求 1 1 . .扫雷游戏的基本要求扫雷游戏的基本要求 Windows 2000/XP 系统提供的扫雷游戏是一个很有趣的游戏。课程设计使用 Java 语言编写一个与其类似的扫雷游戏。具体要求如下: (1) 选择级别后将出现相应级别的扫雷区域, 这是用户使用鼠标左键单击雷 区中任何一个方块便启动计时器。 (2)用户要揭开某个方块,可单击它。若所揭方块下有雷,用户便输了这一 局,若所揭方
2、块下五雷,则显示一个数字,该数字代表方块的周围的 8 个方块中 共有多少颗雷。 (3) 如果用户认为某个方块下埋着雷,单击右键可以在方块上标识一个用户 认为是雷的图标, 即给出一个扫雷标记。 用户每标记出一个扫雷标记(无论用户的 标记是否正确),程序将显示的剩余雷数减少一个。 (4)扫雷胜利后,显示游戏胜利。 (5) 用户可以右击空格,可以选择标记为“旗帜” 、 “问号”或者返回成空格。 2 2 . .需实现的主要功能需实现的主要功能 (1)用户点击笑脸实现复位操作。 调用 repaint()和 validate()函数对界面进行重置以及刷新操作 (2)可以显示用户完全扫雷成功所花时间。 文本
3、框 TF 记录扫雷成功所花的时间 (3)在失败和胜利后跳出失败或胜利的文本框 JoptionPane 该类用来调出对话框并提示胜利 III 二二需求分析需求分析 1 1. . 扫雷棋盘的布局设计扫雷棋盘的布局设计 系统的整体布局为:CardLayout 布局, 采用了文本框、按钮、面板、框架 等组件,菜单主要有 run 按钮笑脸和哭脸,按钮的功能是重新开始新的游戏。 2 2. . 雷区的设计雷区的设计 MineArea类是javax.swing包中Jpanel容器的子类, 实现了ActionListener 和 MouseListener 接口,所创建的对象:mineArea 是 MineGa
4、me 类中最重要的成 员之一,作为一个容器添加到 MineGame 窗口的中心。标明 MineArea 类的主要成 员变量、方法以及和 MineGame 类之间组合关系的 UML 图如下图所示。 JPanelActionListenerMouseListener MineArea row,colum,mineCount,markMount: in block: Block blockView: BlockView showTime: JTextField shouMarkedMineCount: JTextField lay: LayMines record: Record reStart:
5、JButton time: Timer initMineArea(int,int,int): void actionnPerformed(ActionEvent) void mousePressed(MouseEvent): void show(int m,int n): void inquireWin(): void MineGame mineArea: MineArea - MineArea 类的 UML 图 以下是 UML 图中有关数据和方法的详细说明。 1、成员变量 (1)block 是 Block 类型的数组,用来确定雷区有多少需进行扫雷的方块。 (2)blockView 是 Blo
6、ckView 类型的数组,负责为 block 数组中的 Block 对象提 供视图。 (3)lay 是 LayMines 类型的对象,负责设置 block 数组中的哪些方块是雷或不 是雷。 (4)run是一个按钮对象,用户单击它重新开始游戏。 (6)time 是计时器对象,负责计算用户的用时。 2、方法 (1)setbounds(int, int, int ,int)方法可根据参数提供的数据设置雷区 的宽度、高度、雷的数目。 IV (2)actionPerformed(ActionEvent)是MineArea类实现的ActionListener接 口 中 的 方 法 。 当 用 户 单 击blockView中 的 某 个 方 块 时 , actionPerformed(ActionEvent)方法负责执行有关算法,例如,当用鼠标左键单 击方块上的按钮后, 若该方块下有雷, lost(Actio