Java实现简单的扫雷游戏代码
时间: 2024-12-20 16:32:08 浏览: 14
扫雷游戏是一个经典的计算机益智游戏,通常涉及到二维数组表示棋盘,每个格子隐藏着一个地雷或数字。下面是一个非常基础的Java扫雷游戏实现思路:
```java
import java.util.Random;
public class Minesweeper {
private int[][] board; // 棋盘,0代表空地,1以上代表地雷的数量
private final int ROWS = 8;
private final int COLS = 8;
private int mines;
public Minesweeper(int mineCount) {
this.mines = mineCount;
board = new int[ROWS][COLS];
Random random = new Random();
for (int i = 0; i < mineCount; i++) {
int row = random.nextInt(ROWS);
int col = random.nextInt(COLS);
board[row][col] = 1;
}
reveal周边空地(row, col); // 初始化显示周围的数字
}
private void reveal(int row, int col) {
if (board[row][col] != 1) { // 如果不是地雷
System.out.print(board[row][col] + " ");
if (row > 0 && board[row - 1][col] == 0) { // 上方
reveal(row - 1, col);
}
if (row < ROWS - 1 && board[row + 1][col] == 0) { // 下方
reveal(row + 1, col);
}
if (col > 0 && board[row][col - 1] == 0) { // 左边
reveal(row, col - 1);
}
if (col < COLS - 1 && board[row][col + 1] == 0) { // 右边
reveal(row, col + 1);
}
if (row > 0 && col > 0 && board[row - 1][col - 1] == 0) { // 上左
reveal(row - 1, col - 1);
}
if (row > 0 && col < COLS - 1 && board[row - 1][col + 1] == 0) { // 上右
reveal(row - 1, col + 1);
}
if (row < ROWS - 1 && col > 0 && board[row + 1][col - 1] == 0) { // 下左
reveal(row + 1, col - 1);
}
if (row < ROWS - 1 && col < COLS - 1 && board[row + 1][col + 1] == 0) { // 下右
reveal(row + 1, col + 1);
}
} else {
System.out.println("BAM! You hit a mine!");
}
}
public static void main(String[] args) {
Minesweeper game = new Minesweeper(10);
}
}
```
这是一个基本版本,实际的游戏会更复杂,包括用户输入、循环判断是否所有地雷都被标记等。
阅读全文