表2-1 SoundPlayer类设计
背景音乐类 SoundPlayer | ||||
权限 | 返回 类型 | 名称 | 类型 | 说明 |
public | void | playSound | 方法 | 播放音频文件,并在播放完成后释放锁 |
表2-2 soundEffects类设计
音乐音效类 soundEffects | ||||
权限 | 返回 类型 | 名称 | 类型 | 说明 |
public | void | playSound | 方法 | 播放音频文件,并在播放完成后释放锁 |
public | void | play1 | 方法 | 播放 on0lb-r6h2s.wav 文件 |
public | void | play2 | 方法 | 播放 6586c-0ubev.wav 文件 |
public | void | play3 | 方法 | 播放 hbe6d-cgk6g.wav 文件 |
表2-3GameState类设计
游戏状态类 GameState | ||||
权限 | 返回 类型 | 名称 | 类型 | 说明 |
private | char[][] | board | 属性 | 游戏的棋盘状态,表示方块上的内容 |
private | boolean[][] | revealed | 属性 | 方块是否已被揭示 |
private | boolean[][] | flagged | 属性 | 方块是否被标记 |
public | void | GameState | 构造器 | 创建 GameState 对象的构造方法 |
public | char[][] | getBoard | 方法 | 获取游戏的棋盘状态 |
public | boolean[][] | getRevealed | 方法 | 获取方块的揭示状态 |
public | boolean[][] | getFlagged | 方法 | 获取方块的标记状态 |
表2-4 MutableInt类设计
可变整数类 MutableInt | ||||
权限 | 返回 类型 | 名称 | 类型 | 说明 |
default | int | value | 属性 | 保存可变整数值的属性 |
public | void | MutableInt | 构造器 | 创建 MutableInt 对象的构造方法 |
表2-5 MinesweeperGame类设计
扫雷游戏类 MinesweeperGame | ||||
权限 | 返回 类型 | 名称 | 类型 | 说明 |
private | MutableInt | m | 属性 | 表示游戏每一次操作揭开的格子数 |
private | int | cnt | 属性 | 表示悔棋次数 |
private | Stack<GameState> | gameHistory | 属性 | 存储游戏状态的堆栈 |
private | JButton | loadRecordButton | 属性 | 加载游戏记录的按钮 |
private static final | int[] | LEVEL_SIZES | 属性 | 各难度级别区域大小 |
private static final | int[] | LEVEL_MINES | 属性 | 各难度级别雷数 |
private static final | String | FILE_PATH | 属性 | 游戏记录文件路径 |
private | JTextArea | recordTextArea | 属性 | 显示游戏记录的文本区域 |
private | JFrame | recordFrame | 属性 | 游戏记录窗口 |
private | JMenu | levelMenu | 属性 | 难度级别菜单 |
private | int | size | 属性 | 当前难度级别区域大小 |
private | int | mines | 属性 | 当前难度级别雷数 |
private | JButton[][] | buttons | 属性 | 游戏方块按钮数组 |
private | char[][] | board | 属性 | 游戏棋盘数组 |
private | boolean[][] | revealed | 属性 | 标记已揭示方块的二维布尔数组 |
private | boolean[][] | flagged | 属性 | 标记标记为雷的方块的二维布尔数组 |
private | Random | random | 属性 | 随机数生成器 |
private | Timer | timer | 属性 | 游戏计时器 |
private | long | startTime | 属性 | 记录游戏开始时间 |
private | int | idx | 属性 | 索引变量,表示难度类型 |
public | 无 | MinesweeperGame | 构造器 | 创建了一个扫雷游戏的界面,包括菜单栏、加载游戏记录按钮以及游戏记录窗口。 |
private | int | getIndex | 方法 | 得到索引 |
private | void | startGame | 方法 | 开始游戏 |
private | void | closeWindow | 方法 | 关闭窗口 |
private | void | initializeBoard | 方法 | 初始化一个扫雷游戏的棋盘,包括放置雷、计算周围雷数等功能。 |
private | void | createUI | 方法 | 创建图形化界面 |
private | void | reveal | 方法 | 揭示方块 |
private | int | countSurroundingMines | 方法 | 获得周围雷的数量 |
private | void | saveGameState | 方法 | 保存游戏状态 |
private | void | updateUI | 方法 | 更新界面元素 |
private | void | undo | 方法 | 悔棋,返回上一个状态 |
private | void | flag | 方法 | 标记雷 |
private | void | revealAllMines | 方法 | 显示所有雷 |
private | void | disableAllButtons | 方法 | 禁用所有按钮 |
private | void | checkWin | 方法 | 检查胜利条件 |
private | long | getElapsedTimeInSeconds | 方法 | 计时器 |
public | void | saveGameRecord | 方法 | 保存游戏记录 |
private | void | loadGameRecord | 方法 | 显示游戏记录 |
public static | void | main | 方法 | 执行游戏并播放音乐 |