java用数组实现随机布雷
时间: 2023-12-06 09:45:42 浏览: 27
下面是一个 Java 实现的随机布雷的示例代码:
```java
import java.util.Random;
public class MineSweeper {
private final int ROWS = 10; // 行数
private final int COLS = 10; // 列数
private final int NUM_MINES = 10; // 雷数
private final int MINE = -1; // 雷的标记
private int[][] board; // 扫雷棋盘
public void initBoard() {
board = new int[ROWS][COLS];
Random random = new Random();
int count = 0;
while (count < NUM_MINES) { // 随机布雷
int row = random.nextInt(ROWS);
int col = random.nextInt(COLS);
if (board[row][col] != MINE) { // 如果该位置没有雷,则放置雷
board[row][col] = MINE;
count++;
}
}
}
public void printBoard() {
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
if (board[i][j] == MINE) { // 雷
System.out.print("* ");
} else { // 非雷,计算周围雷的数量
int count = 0;
for (int m = i - 1; m <= i + 1; m++) {
for (int n = j - 1; n <= j + 1; n++) {
if (m >= 0 && m < ROWS && n >= 0 && n < COLS && board[m][n] == MINE) {
count++;
}
}
}
System.out.print(count + " ");
}
}
System.out.println();
}
}
public static void main(String[] args) {
MineSweeper mineSweeper = new MineSweeper();
mineSweeper.initBoard();
mineSweeper.printBoard();
}
}
```
在该示例代码中,我们先定义了扫雷棋盘的行数、列数和雷的数量。然后使用一个二维数组来表示扫雷棋盘,其中 -1 代表该位置有雷,其他数字代表该位置周围的雷的数量。
在 `initBoard()` 方法中,我们使用 `java.util.Random` 类来随机放置雷。具体来说,我们使用一个计数器来记录已经放置的雷的数量,然后不断地生成随机的行列坐标,如果该位置还没有放置雷,则将其标记为雷,并将计数器加一。
在 `printBoard()` 方法中,我们遍历整个棋盘,并根据每个位置的值来输出相应的符号。如果该位置是雷,则输出 `*`;否则,我们需要计算该位置周围的雷的数量,并输出该数量。
最后,在 `main()` 方法中,我们创建一个 `MineSweeper` 对象,初始化扫雷棋盘并打印出来。
相关推荐
![exe](https://img-home.csdnimg.cn/images/20210720083343.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![xlsx](https://img-home.csdnimg.cn/images/20210720083732.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)