Java语言实现扫雷游戏的方法

  介绍

这篇文章主要讲解了Java语言实现扫雷游戏的方法,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。

进口javax.swing.JButton;
  
  公共类色延伸JButton {
  私有静态最终长serialVersionUID l=1;
  保护int行;
  保护int上校;
  }

然后我们就可以在GamePanel类中添加按钮了

//初始化按钮,将JLabel覆盖住
  私人空间initButtons () {//循环生成按钮
  for (int i=0;我& lt;行;我+ +){
  for (int j=0;j & lt;关口;j + +) {
  色btn=new色();//根据JLabel大小设置按钮的大小边界
  btn。我* BLOCKHEIGHT setBounds (j * BLOCKWIDTH BLOCKWIDTH, BLOCKHEIGHT);
  this.add (btn);//将按钮存在类变量中(当然,实际上存的是对象的引用地址)
  按钮[我][j]=btn;
  btn。行=我;
  btn。坳=j;//给按钮添加监听器,注册点击事件//(单机按钮时,将执行内部类ActionListener()中的actionPerformed (ActionEvent e)方法)
  btn。addActionListener(新ActionListener () {
  
  @Override
  公共空间actionPerformed (ActionEvent e) {//TODO自动生成方法存根
  
  }});
  }
  }
  }

按钮全部覆盖以后,显示如下:

癑ava语言实现扫雷游戏的方法"

最后,我们就差单击按钮后判断按钮底下是炸弹,空白,还是数字,如果下面是数字的话,我们就打开按钮(也就是将按钮设置为不可见,就可以看见JLabel了);如果单击的按钮下面是空白的话先要将它打开,并且判断它周围的八个方块是否为空的,进入递归调用。

首先,要判断每个小方块周围的八个方块,就要先判断它是否越界,我们设为一个类变量作为坐标偏移量

私人最终int[][]抵消={{1 1},{0,1},{1},{1,0},{1},{0,1},{1},{1,0}};

判断是否越界:

//判断位置是否越界   私人布尔验证(int, int坳){   返回行祝辞=0,,行& lt;这一点。行,,卡扎菲在=0,,坳& lt;this.cols;   }

然后我们写单击按钮时的逻辑方法

//单击按钮时打开或成片打开
  私人空间开放(MyButton btn) {//先将当期按钮设置为不可见,即打开了按钮
  btn.setVisible(假);//判断按钮中是否为数字还是空
  开关(标签[btn.row] [btn.col] .getText ()) {//如果是炸弹则将全部按钮都打开,游戏结束
  情况下“*”;:
  for (int i=0;我& lt;行;我+ +){
  for (int j=0;j & lt;关口;j + +) {
  按钮[我][j] .setVisible(假);
  }
  }
  打破;//如果是空的则将他周围空的按钮都打开,进入递归
  情况下,“:
  (int[]:抵消){
  int启动=btn。行+ [0];
  int newCol=btn。坳+ [1];
  如果(验证(启动,newCol)) {
  色sButton=按钮【启动】(newCol);
  如果(sButton.isVisible ()) {
  打开(sButton);
  }
  }
  }
  默认值:
  }
  }

最后,我们在initButtons方法的单击事件中引用这个方法

btn。addActionListener(新ActionListener () {      @Override   公共空间actionPerformed (ActionEvent e) {//TODO自动生成方法存根   开放((色)e.getSource ());   }});

大功告成,我们的简易扫雷游戏正式完成了!

癑ava语言实现扫雷游戏的方法"

看完上述内容,是不是对Java语言实现扫雷游戏的方法有进一步的了解,如果还想学习更多内容,欢迎关注行业资讯频道。

Java语言实现扫雷游戏的方法