下面是一个简单的JAVA扫雷程序,使用了Swing库来实现界面和事件处理。
程序中使用了一个二维数组来表示雷区,每个元素表示对应位置是否有雷,以及周围雷的数量。用户可以通过点击按钮来揭开对应位置,如果揭开的位置有雷,游戏结束;否则显示周围雷的数量,如果周围没有雷,则递归地揭开周围的位置。同时,程序还实现了计时和计分功能。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Minesweeper extends JFrame implements ActionListener {
private JPanel panel;
private JButton[][] buttons;
private JLabel statusLabel;
private int[][] board; // 0表示空白,-1表示雷,其他数字表示周围雷的数量
private boolean[][] revealed; // 标记是否揭开
private boolean gameOver;
private int remaining; // 剩余未揭开的方块数量
private int secondsElapsed; // 已经经过的秒数
private Timer timer;
private int score;
public Minesweeper(int rows, int cols, int numMines) {
setTitle("Minesweeper");
se