java实现扫雷游戏(附源码)
实现一个扫雷小游戏需要一些编程知识和图形界面库,Java中可以使用Swing来创建图形界面。这个示例创建了一个简单的10x10的扫雷游戏界面,当点击方块时,会根据周围的地雷数量显示数字或地雷标志。你可以根据需要扩展该示例,添加更多功能和改进用户体验。
·
实现一个扫雷小游戏需要一些编程知识和图形界面库,Java中可以使用Swing来创建图形界面。以下是一个简单的扫雷小游戏的Java代码示例,该示例使用Swing库:
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class MineSweeperGame {
public static void main(String[] args) {
JFrame frame = new JFrame("扫雷游戏");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 300);
JPanel panel = new JPanel(new GridLayout(10, 10));
JButton[][] buttons = new JButton[10][10];
// 创建并初始化扫雷地图
boolean[][] mines = generateMines(10, 10, 10);
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
buttons[i][j] = new JButton();
int finalI = i;
int finalJ = j;
buttons[i][j].addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if (mines[finalI][finalJ]) {
buttons[finalI][finalJ].setText("X");
} else {
int count = countAdjacentMines(mines, finalI, finalJ);
buttons[finalI][finalJ].setText(count > 0 ? String.valueOf(count) : "");
}
buttons[finalI][finalJ].setEnabled(false);
}
});
panel.add(buttons[i][j]);
}
}
frame.add(panel);
frame.setVisible(true);
}
// 生成扫雷地图,其中minesCount是地雷数量
private static boolean[][] generateMines(int rows, int cols, int minesCount) {
boolean[][] mines = new boolean[rows][cols];
int count = 0;
while (count < minesCount) {
int x = (int) (Math.random() * rows);
int y = (int) (Math.random() * cols);
if (!mines[x][y]) {
mines[x][y] = true;
count++;
}
}
return mines;
}
// 计算某个格子周围的地雷数量
private static int countAdjacentMines(boolean[][] mines, int x, int y) {
int count = 0;
for (int i = -1; i <= 1; i++) {
for (int j = -1; j <= 1; j++) {
int newX = x + i;
int newY = y + j;
if (newX >= 0 && newX < mines.length && newY >= 0 && newY < mines[0].length) {
if (mines[newX][newY]) {
count++;
}
}
}
}
return count;
}
}
这个示例创建了一个简单的10x10的扫雷游戏界面,当点击方块时,会根据周围的地雷数量显示数字或地雷标志。你可以根据需要扩展该示例,添加更多功能和改进用户体验。
更多推荐
已为社区贡献2条内容
所有评论(0)