Java实现简单扫雷程序

用Java实现简单扫雷程序,供大家参考,具体内容如下

页面设置:框架是borderlayout,在上中下加入外面要加入的组件(左边和右边不加)。扫雷用的布局是gridlayout即网格布局,与扫雷界面天然契合。

组件:使用panel,button,frame,label等组件,最后集中到frame中形成整体。并对其加入适当的监听,监听算法的实现如下。

扫雷算法:一共要考虑三种情况,第一种是点到雷的情况,第二种是点到空的格的情况,第三种是点到有数字的情况。下面我们对这些情况一一进行考虑,完成算法的设计。首先随机生成一个扫雷的图,上面包含有随机生成的雷,雷旁边的数字和空白组成的矩阵matrix,之后所有的监听都依照这个矩阵matrix为参照。

①点到空的时候,调用递归算法寻找旁边空格(周围一圈)的将其显示(这里笔者就是帮他换了一个颜色,即完成了
显示工作,读者也可以将点击的button组件换成label),直到找到是数字的格就停止对这个方向上的显示。
②点到数字的时候,就将格子显示。
③点到雷的时候,显示全部matrix中的值,即结束游戏。

递归算法:当点击空白格时,对其周围一圈的格子进行查找,当它是隔空的时候就将它显示,如果不是就停止对这个格子上的递归算法。

参照矩阵matrix的生成:随机使用random函数随机生成1-size(扫雷的规模)的随机数,形成雷的横纵坐标,并加入matrix中,这里的矩阵是string类型的,雷用“*”表示,根据雷的位置,分别对其周围的格子上的数字加1,即形成参照矩阵。

算法的改进:加入菜单栏,实时计时器,改变扫雷游戏规模,及代码比较冗余(毕竟完成大于完美),这里为读者提供一个模板,读者可以以此参照做进一步修改。

下面是成品的展示图和源码:

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

/*
 * 扫雷
 */
 class newJButton extends JButton {
    // 新建组合JButton类
    int axisx;
    int axisy;

    newJButton(String s, int axisx, int axisy) {
        super(s);
        this.axisx = axisx;
        this.axisy = axisy;
    }

    public int getaxisx() {
        return axisx;
    }

    public int getaxisy() {
        return axisy;
    }
}
public class MineTest implements ActionListener {
    // 组件定义
    static final int size = 10; // 扫雷游戏规模
    int time; // 计算雷的个数
    JFrame frame = new JFrame("扫雷");
    JPanel panel1 = new JPanel(); // 计时器
    JPanel panel2 = new JPanel(); // 笑脸
    JPanel panel3 = new JPanel(); // 初级扫雷
    newJButton t;
    newJButton t2;
    long programStart = System.currentTimeMillis();
    long programOver;
    String[][] matrix = new String[size][size]; // 扫雷信息记录矩阵
    newJButton[][] buttons = new newJButton[size][size]; // 创建扫雷按钮矩阵
    int[][] tip = new int[size][size]; // 判断是否可以显示按钮

    // 提示
    public void inittime() {
        t = new newJButton("进行中", 101, 101);
        t2 = new newJButton("/", 102, 102);
        panel2.add(t);
        panel2.add(t2);
    }

    // 笑脸
    public void initsmile() {
        newJButton b = new newJButton("O", 100, 100); // 将归零按键"O"的坐标设置为(100,100)
        b.addActionListener(this);
        panel1.add(b);
    }

    // 初级扫雷
    public void initmine() {
        panel3.setLayout(new GridLayout(10, 10, 1, 1));
        // panel3.setSize(250,250);
        for (int i = 0; i < size; i++) {
            for (int j = 0; j < size; j++) {
                // button.setSize(25,25);
                panel3.add(buttons[i][j]);
            }
        }

    }

    // 总界面的组合
    public void initcombine() {
        frame.setLayout(new BorderLayout());
        frame.add(panel1, BorderLayout.NORTH);
        frame.add(panel2, BorderLayout.CENTER);
        frame.add(panel3, BorderLayout.SOUTH);
        // frame.add(panel4);
    }

    // 扫雷页面初始化
    MineTest() {

        // 产生按钮
        for (int i = 0; i < size; i++) {
            for (int j = 0; j < size; j++) {
                newJButton jb = new newJButton(" ", i, j);
                jb.setBackground(Color.WHITE);
                jb.addActionListener(this);
                buttons[i][j] = jb;
            }
        }

        inittime();
        initsmile();
        initmine();
        initcombine();
        frame.setVisible(true);
        frame.setSize(500, 500);
        frame.setLocation(700, 300);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 可以关闭
        // frame.pack();

        // 产生size个雷并加入到矩阵中
        do {
            time = 0;
            pmatrix(); // 初始化原始矩阵
            boom(); // 加入雷
            for (int i = 0; i < size; i++) {
                for (int j = 0; j < size; j++) {
                    if (matrix[i][j] == "*") {
                        time = time + 1;
                    }
                }
            }
        } while (time != 10);
        caculate(); // 计算扫雷矩阵中的距离

        // 形成改变颜色的状态矩阵
        for (int i = 0; i < size; i++) {
            for (int j = 0; j < size; j++) {
                if (matrix[i][j] == "0") {
                    tip[i][j] = 0;
                } else {
                    tip[i][j] = 1;
                }
            }
        }

        // 打印
        for (int i = 0; i < size; i++) {
            for (int j = 0; j < size; j++) {
                System.out.print(matrix[i][j] + " ");
            }
            System.out.println("\n");
        }

    }

    private void pmatrix() {
        // 扫雷矩阵初始化
        for (int i = 0; i < size; i++) {
            for (int j = 0; j < size; j++) {
                matrix[i][j] = "0";
            }
        }
    }

    private void boom() {
        // 产生炸弹;
        int num = 0;
        while (num < size) {
            int i = (int) (Math.random() * size);
            int j = (int) (Math.random() * size);
            matrix[i][j] = "*";
            num = num + 1;
        }
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        // 按钮响应事件
        newJButton temp = (newJButton) e.getSource();
        if (temp.getText() == "O") {
            // 产生size个雷并加入到矩阵中
            do {
                time = 0;
                pmatrix(); // 初始化原始矩阵
                boom(); // 加入雷
                for (int i = 0; i < size; i++) {
                    for (int j = 0; j < size; j++) {
                        if (matrix[i][j] == "*") {
                            time = time + 1;
                        }
                    }
                }
            } while (time != 10);
            caculate(); // 计算扫雷矩阵中的距离

            // 形成改变颜色的状态矩阵
            for (int i = 0; i < size; i++) {
                for (int j = 0; j < size; j++) {
                    if (matrix[i][j] == "0") {
                        tip[i][j] = 0;
                    } else {
                        tip[i][j] = 1;
                    }
                }
            }

            // 打印
            for (int i = 0; i < size; i++) {
                for (int j = 0; j < size; j++) {
                    System.out.print(matrix[i][j] + " ");
                }
                System.out.println("\n");
            }
            for (int i = 0; i < size; i++) {
                for (int j = 0; j < size; j++) {
                    buttons[i][j].setText(" ");
                    buttons[i][j].setBackground(Color.WHITE);
                }
            }
            t.setLabel("进行中");
            t2.setLabel("/");
            programStart = System.currentTimeMillis();
            // System.out.println("smile");
        } else if (matrix[temp.getaxisx()][temp.getaxisy()] == "*") {
            for (int i = 0; i < size; i++) {
                for (int j = 0; j < size; j++) {
                    if (matrix[i][j] != "0") {
                        buttons[i][j].setText(matrix[i][j]);
                        if (matrix[i][j] == "*") {
                            buttons[i][j].setBackground(Color.RED);
                        }
                    }
                }
            }
            t.setLabel("失败");
            programOver = System.currentTimeMillis();
            t2.setLabel("" + (programOver - programStart) / 1000 + "s");
        } else if (matrix[temp.getaxisx()][temp.getaxisy()] != "0") {
            buttons[temp.getaxisx()][temp.getaxisy()].setText(matrix[temp.getaxisx()][temp.getaxisy()]);
            buttons[temp.getaxisx()][temp.getaxisy()].setBackground(Color.gray);
        } else if (matrix[temp.getaxisx()][temp.getaxisy()] == "0") {
            digui(temp.getaxisx(), temp.getaxisy());
        }
    }

    private void digui(int i, int j) {
        // 递归调用该函数,处理按钮是“0”的情况
        if (i == 0 && j == 0) {
            if (tip[i][j] == 0) {
                buttons[i][j].setBackground(Color.gray);
                tip[i][j] = 1;
                digui(i, j + 1);
                digui(i + 1, j + 1);
                digui(i + 1, j);
            } else {
                if (matrix[i][j] == "0") {
                    buttons[i][j].setBackground(Color.gray);
                    tip[i][j] = 1;
                } else {
                    buttons[i][j].setText(matrix[i][j]);
                    buttons[i][j].setBackground(Color.gray);
                    tip[i][j] = 1;
                }
            }
        } else if (i == 0 && j == size-1) {
            if (tip[i][j] == 0) {
                buttons[i][j].setBackground(Color.gray);
                tip[i][j] = 1;
                digui(i, j - 1);
                digui(i + 1, j - 1);
                digui(i + 1, j);
            } else {
                if (matrix[i][j] == "0") {
                    buttons[i][j].setBackground(Color.gray);
                    tip[i][j] = 1;
                } else {
                    buttons[i][j].setText(matrix[i][j]);
                    buttons[i][j].setBackground(Color.gray);
                    tip[i][j] = 1;
                }
            }
        } else if (i == size-1 && j == 0) {
            if (tip[i][j] == 0) {
                buttons[i][j].setBackground(Color.gray);
                tip[i][j] = 1;
                digui(i, j + 1);
                digui(i - 1, j + 1);
                digui(i - 1, j);
            } else {
                if (matrix[i][j] == "0") {
                    buttons[i][j].setBackground(Color.gray);
                    tip[i][j] = 1;
                } else {
                    buttons[i][j].setText(matrix[i][j]);
                    buttons[i][j].setBackground(Color.gray);
                    tip[i][j] = 1;
                }
            }
        } else if (i == size-1 && j == size-1) {
            if (tip[i][j] == 0) {
                buttons[i][j].setBackground(Color.gray);
                tip[i][j] = 1;
                digui(i, j - 1);
                digui(i - 1, j - 1);
                digui(i - 1, j);
            } else {
                if (matrix[i][j] == "0") {
                    buttons[i][j].setBackground(Color.gray);
                    tip[i][j] = 1;
                } else {
                    buttons[i][j].setText(matrix[i][j]);
                    buttons[i][j].setBackground(Color.gray);
                    tip[i][j] = 1;
                }
            }
        } else if (i == 0) {
            if (tip[i][j] == 0) {
                buttons[i][j].setBackground(Color.gray);
                tip[i][j] = 1;
                digui(i, j - 1);
                digui(i, j + 1);
                digui(i + 1, j - 1);
                digui(i + 1, j);
                digui(i + 1, j + 1);
            } else {
                if (matrix[i][j] == "0") {
                    buttons[i][j].setBackground(Color.gray);
                    tip[i][j] = 1;
                } else {
                    buttons[i][j].setText(matrix[i][j]);
                    buttons[i][j].setBackground(Color.gray);
                    tip[i][j] = 1;
                }
            }
        } else if (j == 0) {
            if (tip[i][j] == 0) {
                buttons[i][j].setBackground(Color.gray);
                tip[i][j] = 1;
                digui(i - 1, j);
                digui(i + 1, j);
                digui(i - 1, j + 1);
                digui(i, j + 1);
                digui(i + 1, j + 1);
            } else {
                if (matrix[i][j] == "0") {
                    buttons[i][j].setBackground(Color.gray);
                    tip[i][j] = 1;
                } else {
                    buttons[i][j].setText(matrix[i][j]);
                    buttons[i][j].setBackground(Color.gray);
                    tip[i][j] = 1;
                }
            }
        } else if (i == size-1) {
            if (tip[i][j] == 0) {
                buttons[i][j].setBackground(Color.gray);
                tip[i][j] = 1;
                digui(i - 1, j - 1);
                digui(i - 1, j);
                digui(i - 1, j + 1);
                digui(i, j - 1);
                digui(i, j + 1);
            } else {
                if (matrix[i][j] == "0") {
                    buttons[i][j].setBackground(Color.gray);
                    tip[i][j] = 1;
                } else {
                    buttons[i][j].setText(matrix[i][j]);
                    buttons[i][j].setBackground(Color.gray);
                    tip[i][j] = 1;
                }
            }
        } else if (j == size-1) {
            if (tip[i][j] == 0) {
                buttons[i][j].setBackground(Color.gray);
                tip[i][j] = 1;
                digui(i - 1, j);
                digui(i + 1, j);
                digui(i - 1, j - 1);
                digui(i - 1, j);
                digui(i - 1, j);
            } else {
                if (matrix[i][j] == "0") {
                    buttons[i][j].setBackground(Color.gray);
                    tip[i][j] = 1;
                } else {
                    buttons[i][j].setText(matrix[i][j]);
                    buttons[i][j].setBackground(Color.gray);
                    tip[i][j] = 1;
                }
            }
        } else {
            if (tip[i][j] == 0) {
                buttons[i][j].setBackground(Color.gray);
                tip[i][j] = 1;
                digui(i - 1, j - 1);
                digui(i - 1, j);
                digui(i - 1, j + 1);
                digui(i, j - 1);
                digui(i, j + 1);
                digui(i + 1, j - 1);
                digui(i + 1, j);
                digui(i + 1, j + 1);
            } else {
                if (matrix[i][j] == "0") {
                    buttons[i][j].setBackground(Color.gray);
                    tip[i][j] = 1;
                } else {
                    buttons[i][j].setText(matrix[i][j]);
                    buttons[i][j].setBackground(Color.gray);
                    tip[i][j] = 1;
                }
            }
        }
    }

    public static void main(String[] args) {
        new MineTest();
    }

    private void caculate() {
        // 计算扫雷矩阵中的距离
        for (int i = 0; i < size; i++) {
            for (int j = 0; j < size; j++) {
                if (matrix[i][j] == "*") {
                    if (i == 0 && j == 0) {
                        if (matrix[i + 1][j] != "*") {
                            matrix[i + 1][j] = String.valueOf(Integer.parseInt(matrix[i + 1][j]) + 1);
                        }
                        if (matrix[i + 1][j + 1] != "*") {
                            matrix[i + 1][j + 1] = String.valueOf(Integer.parseInt(matrix[i + 1][j + 1]) + 1);
                        }
                        if (matrix[i][j + 1] != "*") {
                            matrix[i][j + 1] = String.valueOf(Integer.parseInt(matrix[i][j + 1]));
                        }
                    } else if (i == 9 && j == 0) {
                        if (matrix[i - 1][j] != "*") {
                            matrix[i - 1][j] = String.valueOf(Integer.parseInt(matrix[i - 1][j]) + 1);
                        }
                        if (matrix[i - 1][j + 1] != "*") {
                            matrix[i - 1][j + 1] = String.valueOf(Integer.parseInt(matrix[i - 1][j + 1]) + 1);
                        }
                        if (matrix[i][j + 1] != "*") {
                            matrix[i][j + 1] = String.valueOf(Integer.parseInt(matrix[i][j + 1]) + 1);
                        }
                    } else if (i == 0 && j == 9) {
                        if (matrix[i + 1][j] != "*") {
                            matrix[i + 1][j] = String.valueOf(Integer.parseInt(matrix[i + 1][j]) + 1);
                        }
                        if (matrix[i + 1][j - 1] != "*") {
                            matrix[i + 1][j - 1] = String.valueOf(Integer.parseInt(matrix[i + 1][j - 1]) + 1);
                        }
                        if (matrix[i][j - 1] != "*") {
                            matrix[i][j - 1] = String.valueOf(Integer.parseInt(matrix[i][j - 1]) + 1);
                        }
                    } else if (i == 9 && j == 9) {
                        if (matrix[i][j - 1] != "*") {
                            matrix[i][j - 1] = String.valueOf(Integer.parseInt(matrix[i][j - 1]) + 1);
                        }
                        if (matrix[i - 1][j] != "*") {
                            matrix[i - 1][j] = String.valueOf(Integer.parseInt(matrix[i - 1][j]) + 1);
                        }
                        if (matrix[i - 1][j - 1] != "*") {
                            matrix[i - 1][j - 1] = String.valueOf(Integer.parseInt(matrix[i - 1][j - 1]) + 1);
                        }
                    } else if (i == 0) {
                        if (matrix[i][j - 1] != "*") {
                            matrix[i][j - 1] = String.valueOf(Integer.parseInt(matrix[i][j - 1]) + 1);
                        }
                        if (matrix[i][j + 1] != "*") {
                            matrix[i][j + 1] = String.valueOf(Integer.parseInt(matrix[i][j + 1]) + 1);
                        }
                        if (matrix[i + 1][j - 1] != "*") {
                            matrix[i + 1][j - 1] = String.valueOf(Integer.parseInt(matrix[i + 1][j - 1]) + 1);
                        }
                        if (matrix[i + 1][j] != "*") {
                            matrix[i + 1][j] = String.valueOf(Integer.parseInt(matrix[i + 1][j]) + 1);
                        }
                        if (matrix[i + 1][j + 1] != "*") {
                            matrix[i + 1][j + 1] = String.valueOf(Integer.parseInt(matrix[i + 1][j + 1]) + 1);
                        }
                    } else if (j == 0) {
                        if (matrix[i - 1][j] != "*") {
                            matrix[i - 1][j] = String.valueOf(Integer.parseInt(matrix[i - 1][j]) + 1);
                        }
                        if (matrix[i - 1][j + 1] != "*") {
                            matrix[i - 1][j + 1] = String.valueOf(Integer.parseInt(matrix[i - 1][j + 1]) + 1);
                        }
                        if (matrix[i][j + 1] != "*") {
                            matrix[i][j + 1] = String.valueOf(Integer.parseInt(matrix[i][j + 1]) + 1);
                        }
                        if (matrix[i + 1][j] != "*") {
                            matrix[i + 1][j] = String.valueOf(Integer.parseInt(matrix[i + 1][j]) + 1);
                        }
                        if (matrix[i + 1][j + 1] != "*") {
                            matrix[i + 1][j + 1] = String.valueOf(Integer.parseInt(matrix[i + 1][j + 1]) + 1);
                        }
                    } else if (i == 9) {
                        if (matrix[i][j - 1] != "*") {
                            matrix[i][j - 1] = String.valueOf(Integer.parseInt(matrix[i][j - 1]) + 1);
                        }
                        if (matrix[i][j + 1] != "*") {
                            matrix[i][j + 1] = String.valueOf(Integer.parseInt(matrix[i][j + 1]) + 1);
                        }
                        if (matrix[i - 1][j - 1] != "*") {
                            matrix[i - 1][j - 1] = String.valueOf(Integer.parseInt(matrix[i - 1][j - 1]) + 1);
                        }
                        if (matrix[i - 1][j] != "*") {
                            matrix[i - 1][j] = String.valueOf(Integer.parseInt(matrix[i - 1][j]) + 1);
                        }
                        if (matrix[i - 1][j + 1] != "*") {
                            matrix[i - 1][j + 1] = String.valueOf(Integer.parseInt(matrix[i - 1][j + 1]) + 1);
                        }
                    } else if (j == 9) {
                        if (matrix[i - 1][j] != "*") {
                            matrix[i - 1][j] = String.valueOf(Integer.parseInt(matrix[i - 1][j]) + 1);
                        }
                        if (matrix[i + 1][j] != "*") {
                            matrix[i + 1][j] = String.valueOf(Integer.parseInt(matrix[i + 1][j]) + 1);
                        }
                        if (matrix[i - 1][j - 1] != "*") {
                            matrix[i - 1][j - 1] = String.valueOf(Integer.parseInt(matrix[i - 1][j - 1]) + 1);
                        }
                        if (matrix[i][j - 1] != "*") {
                            matrix[i][j - 1] = String.valueOf(Integer.parseInt(matrix[i][j - 1]) + 1);
                        }
                        if (matrix[i + 1][j - 1] != "*") {
                            matrix[i + 1][j - 1] = String.valueOf(Integer.parseInt(matrix[i + 1][j - 1]) + 1);
                        }
                    } else {
                        if (matrix[i - 1][j - 1] != "*") {
                            matrix[i - 1][j - 1] = String.valueOf(Integer.parseInt(matrix[i - 1][j - 1]) + 1);
                        }
                        if (matrix[i - 1][j] != "*") {
                            matrix[i - 1][j] = String.valueOf(Integer.parseInt(matrix[i - 1][j]) + 1);
                        }
                        if (matrix[i - 1][j + 1] != "*") {
                            matrix[i - 1][j + 1] = String.valueOf(Integer.parseInt(matrix[i - 1][j + 1]) + 1);
                        }
                        if (matrix[i][j - 1] != "*") {
                            matrix[i][j - 1] = String.valueOf(Integer.parseInt(matrix[i][j - 1]) + 1);
                        }
                        if (matrix[i][j + 1] != "*") {
                            matrix[i][j + 1] = String.valueOf(Integer.parseInt(matrix[i][j + 1]) + 1);
                        }
                        if (matrix[i + 1][j - 1] != "*") {
                            matrix[i + 1][j - 1] = String.valueOf(Integer.parseInt(matrix[i + 1][j - 1]) + 1);
                        }
                        if (matrix[i + 1][j] != "*") {
                            matrix[i + 1][j] = String.valueOf(Integer.parseInt(matrix[i + 1][j]) + 1);
                        }
                        if (matrix[i + 1][j + 1] != "*") {
                            matrix[i + 1][j + 1] = String.valueOf(Integer.parseInt(matrix[i + 1][j + 1]) + 1);
                        }
                    }
                }
            }
        }

    }

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • java实现简单扫雷游戏

    本文实例为大家分享了java实现简单扫雷游戏的具体代码,供大家参考,具体内容如下 package com.test.swing; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import javax.swing.JButton; import javax.

  • Java语言实现的扫雷游戏(1)

    Java类库中提供了用于GUI的swing开发工具包,我们可以利用swing设计出一些简单的经典小游戏,如扫雷,推箱子,俄罗斯方块等.接下来我就简单分享一下用Java设计扫雷游戏的思路与过程. 首先,我们要设计出扫雷的窗口界面,说白了,也就是在窗口上绘制出指定行数和列数的小方格.要在窗体上绘制方格,我们需要一个JPanel面板,所以我们定义类GamePanel让它继承自JPanel,然后我们在就可以这个类上绘制我们所要的信息了.然后,在类中,我们定义一些基本的变量,如行数,列数,雷的数量等等,方

  • java实现简单扫雷小游戏

    本文实例为大家分享了java实现扫雷游戏的具体代码,供大家参考,具体内容如下 import java.awt.BorderLayout; import java.awt.Color; import java.awt.Container; import java.awt.GridLayout; import java.awt.Insets; import java.awt.Label; import java.awt.event.ActionEvent; import java.awt.event

  • java实现扫雷游戏

    初学Java,写了一个扫雷代码来锻炼一下自己的代码能力. 一.代码思路 代码思路很重要,如果事先就想好了代码思路,那么写这一个代码肯定是事半功倍,比在哪里瞎打要强不知道多少. 经过思考,觉得可以创建一个二维数组来记录情况 未翻开的牌:(统一显示 █ ) 数组的值 代表 -1 雷 0 旁边没有雷 1 旁边有一个雷 以此类推 翻开的牌则: if(a[x][y] == 9) System.out.print("?"); if(a[x][y] == 10) System.out.print(&

  • Java Swing实现扫雷小游戏

    swing设计扫雷心得,供大家参考,具体内容如下 最近学习swing学习之余做了一个小游戏:扫雷 1.前期设计 2.实现 其实完成这个游戏的核心就在于对数组的操纵,下面贴主要代码Main.java: package first; import java.awt.Color; import java.awt.Dimension; import java.awt.Font; import java.awt.GridLayout; import java.awt.Image; import java.

  • java swing实现的扫雷游戏及改进版完整示例

    本文实例讲述了java swing实现的扫雷游戏及改进版.分享给大家供大家参考,具体如下: 版本1: package awtDemo; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import javax.swing.JButton; import jav

  • java实现扫雷小游戏

    本文实例为大家分享了java实现扫雷小游戏的具体代码,供大家参考,具体内容如下 代码: package GUI; import java.util.Random; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.awt.BorderLayout; import java.awt.GridLayo

  • Java语言实现的扫雷游戏(2)

    本文实例为大家分享了Java语言实现的扫雷游戏的第2部分代码,供大家参考,具体内容如下 在上一篇文章中,我们已经将扫雷的绘制了方格阵列并随机分配了炸弹的位置,接下来我们要将阵列全部覆盖上按钮.因为我们要通过按钮来获知当前方格的坐标,所以简单的Button按钮还无法满足我们的要求,所以,我们就自定义一个按钮的类,让它继承自Button类,但要给他加上行号和列号,这样我们就能直接通过按钮读取它的位置了 import javax.swing.JButton; public class MyButton

  • java实现扫雷游戏控制台版

    本文实例为大家分享了java实现扫雷游戏控制台版,供大家参考,具体内容如下 扫雷游戏 a.游戏的分析 在游戏中需要存在对象包含哪些. 格子对象(Grid): 属性:内容(content).状态(type) b.工程架构 设计工程包结构 bean:存放实体类 core:游戏核心类(游戏操作) test:扫雷玩的测试类 c.编写类 Grid(属性:content.type) Core类–游戏核心类(雷区创建.显示雷区.布雷.踩雷) Test类–测试类 d.核心类设计 1.格子对象创建方法定义 2.显

  • Java实现简单的扫雷小程序

    前两天看了个扫雷的视频,于是自己跟着做了下,感觉还不是很难. 初学Java的同学可以尝试自己操作下Java小程序 这样子才能提高自己的理解能力和编程水平 不用多说了,直接上代码吧! 具体代码操作如下: import java.awt.BorderLayout; import java.awt.Color; import java.awt.Container; import java.awt.GridLayout; import java.awt.event.ActionEvent; import

随机推荐