核心算法 判断周围一圈是否有雷 有的话显示在界面 数量
i-1,j-1 |
i,j-1 |
i+1,j-1 |
i-1,j |
i,j |
i+1,j |
i-1,j+1 |
i,j+1 |
i+1,j+1 |
总代码 代码不多 都在一个类里面实现 创建方法 没有另外分类
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;
import static java.awt.Font.PLAIN;
public class SaoLei implements ActionListener {
JFrame frame= new JFrame();
ImageIcon bannerIcon= new ImageIcon("image/come.png");
ImageIcon guessIcon= new ImageIcon("image/问号25.png");
ImageIcon bombIcon= new ImageIcon("image/o25.png");
ImageIcon overIcon= new ImageIcon("image/over.png");
ImageIcon chengIcon= new ImageIcon("image/成1.png");
ImageIcon qiIcon= new ImageIcon("image/qi25.png");
/* ImageIcon image = new ImageIcon("Img/ackground.jpg").getImage();// 这是图标图片 .png .jpg .gif 等格式的图片都可以
image.setImage(image.getImage().getScaledInstance(20,20,Image.SCALE_DEFAULT));//这里设置图片大小,目前是20*20*/
//可以用下面三句代码来代替
//Image img = image.getImage();
//img = img.getScaledInstance(width, height, Image.SCALE_DEFAULT);
//image.setImage(img);
//开始定义数据结构
int HANG=20;
int LIE=20;
int[][] data=new int[HANG][LIE];//创建数组又二十行二十列
JButton[][] btns=new JButton[HANG][LIE];//创建按钮
int LEICOUNT=30;//创建雷有多少个
int LEICODE=-1;//表示是雷
int unopened=HANG*LIE;//已经开开的有多少
int opened=0;//没有开开的有多少
int seconds=0;//时钟
JButton bannerBth=new JButton(bannerIcon);
JLabel lable1=new JLabel("待开"+unopened);
JLabel lable2=new JLabel("已开"+opened);
JLabel lable3=new JLabel("用时"+seconds+"s");
Timer timer=new Timer(1000,this);//时钟走起来
//创建一个构造方法 不用写返回值
public SaoLei (){
frame.setSize(1200,900);//设置窗口的大小
frame.setResizable(true);//是否能改变大小
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//点击关闭就关闭了
frame.setLayout(new BorderLayout());//设置一个布局
setHeader();//调用方法
addLei();
setButtons();
timer.start();
frame.setVisible(true);//让他显示出来
}
private void addLei(){
Ra