帮我用JAVA写一个简易的扫雷
时间: 2024-09-30 14:09:08 浏览: 33
在Java中,我们可以创建一个简单的扫雷游戏作为文字版的,这里提供一个基础的控制台版扫雷程序的示例,由于篇幅有限,我们将只实现基本的游戏规则:
```java
import java.util.Scanner;
class Mine {
private boolean isMine = true;
// 其他矿石属性...
public boolean isMine() {
return isMine;
}
}
class Board {
private int[][] board;
private int mineCount;
public Board(int width, int height, int mineCount) {
this.board = new int[width][height];
this.mineCount = mineCount;
// 随机放置地雷...
}
public void reveal(int x, int y) {
if (x < 0 || x >= board.length || y < 0 || y >= board[0].length) {
System.out.println("越界了!");
return;
}
if (board[x][y] == -1) {
System.out.println("地雷!");
} else if (!isRevealed(x, y)) {
System.out.println("数字:" + board[x][y]);
for (int i = -1; i <= 1; i++) {
for (int j = -1; j <= 1; j++) {
reveal(x + i, y + j);
}
}
}
}
private boolean isRevealed(int x, int y) {
return board[x][y] != -1;
}
}
public class Minesweeper {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入矩阵宽度和高度(例如5 5):");
int width = scanner.nextInt();
int height = scanner.nextInt();
System.out.println("请输入地雷数量:");
int mineCount = scanner.nextInt();
Board gameBoard = new Board(width, height, mineCount);
System.out.println("开始游戏...");
System.out.println("请输入坐标(行 已经揭示过的格子数):");
gameBoard.reveal(scanner.nextInt(), scanner.nextInt());
}
}
```
这个程序首先会询问用户网格的大小和地雷的数量,然后在控制台上显示一个未揭示的网格。玩家输入一行已揭示的格子数和列数,程序会检查并显示相应位置的内容。如果该位置有地雷,则提示“地雷!”;如果没有地雷且尚未揭示,则显示周围的数字。
阅读全文