资源简介
资源提供给刚入门的老哥们参考,10 * 10 的java界面扫雷游戏,当然,也可以自己设置成更大的,具体讲解在我博客,可以去看下.
代码片段和文件信息
package BongEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import DrawBong.DrawBong;
import End.EndJframe;
import Panel.MyPanel;
public class BongEvent extends MouseAdapter{
private MyPanel[][] mpp;//接受传入的数组用于实现扫雷功能
private DrawBong db; //接受传入的DrawBong用于得出扫雷结果后把扫雷盘隐藏
public BongEvent(MyPanel[][] mpp DrawBong db){
this.mpp = mpp;
this.db = db;
}
/**
* 更新点击后的扫雷盘信息
* @param mpp 扫雷盘上元素信息的数组
* @param x 点击元素的x坐标
* @param y 点击元素的y坐标
*/
public static void Deal(MyPanel[][] mpp int x int y){
for(int i = x - 1; i <= x + 1 && i < 10; i++){//判断点击元素周围是否有雷有则跳出(也可以直接判断自身的showStr)
for(int j = y - 1; j <= y + 1 && j < 10; j++){
if(i < 0 || j < 0){
continue;
}
if(mpp[i][j].getShowStr().equals(“=“)){
mpp[x][y].setN(1);
return;
}
}
}
mpp[x][y].setN(1);//走到这里说明周围没雷先把自身标为打开不然下面会出现无限递归而发生异常
for(int i = x - 1; i <= x + 1 && i < 10; i++){
for(int j = y - 1; j <= y + 1 && j < 10; j++){
if(i < 0 || j < 0){
continue;
}
if(mpp[i][j].getN() == 0){//开始递归
Deal(mpp i j);
}
}
}
}
public void mouseClicked(MouseEvent e){
if(e.getButton() == MouseEvent.BUTTON1){//按下左键
MyPanel p = (MyPanel)e.getSource();
BongEvent.Deal(mpp p.getX() p.getY());//传入信息
for(int i = 0; i < 10; i++){//处理完过后把扫雷盘重画一遍
for(int j = 0; j < 10; j++){
mpp[i][j].repaint();
}
}
if(p.getShowStr().equals(“=“)){//如果点到雷了则把DrawBong隐藏在打开一个界面
db.setVisible(false);
new EndJframe(“你踩到雷了!“);
}
int k = 100;
for(int i = 0; i < 10; i++){//判断是否还剩10个没被左键点开如果只有10个了则代表扫雷成功
for(int j = 0; j < 10; j++){
if(mpp[i][j].getN() == 1){
k--;
}
if(k == 10){
db.setVisible(false);
new EndJframe(“扫雷成功!“);
}
}
}
}
if(e.getButton() == MouseEvent.BUTTON3){//右键标记是否为雷
MyPanel p = (MyPanel)e.getSource();
if(p.getN() == 0){
p.setN(2);
p.repaint();
}else if(p.getN() == 2){
p.setN(0);
p.repaint();
}else{
}
}
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-05-03 14:38 Bong\
文件 301 2018-05-03 14:38 Bong\.classpath
文件 380 2018-05-03 14:38 Bong\.project
目录 0 2018-05-03 14:38 Bong\.settings\
文件 598 2018-05-03 14:38 Bong\.settings\org.eclipse.jdt.core.prefs
目录 0 2018-05-08 10:03 Bong\bin\
目录 0 2018-05-08 10:03 Bong\bin\BongEvent\
文件 2071 2018-05-08 10:14 Bong\bin\BongEvent\BongEvent.class
目录 0 2018-05-08 10:03 Bong\bin\DrawBong\
文件 2124 2018-05-08 10:15 Bong\bin\DrawBong\DrawBong.class
目录 0 2018-05-08 10:03 Bong\bin\End\
文件 787 2018-05-08 14:22 Bong\bin\End\EndJfr
文件 831 2018-05-08 10:03 Bong\bin\End\EndPanel.class
目录 0 2018-05-08 10:03 Bong\bin\main\
文件 415 2018-05-08 10:03 Bong\bin\main\BangMain.class
目录 0 2018-05-08 10:03 Bong\bin\Panel\
文件 2160 2018-05-08 10:03 Bong\bin\Panel\MyPanel.class
目录 0 2018-05-03 21:39 Bong\src\
目录 0 2018-05-03 20:33 Bong\src\BongEvent\
文件 2327 2018-05-08 10:14 Bong\src\BongEvent\BongEvent.java
目录 0 2018-05-03 20:27 Bong\src\DrawBong\
文件 1888 2018-05-08 10:15 Bong\src\DrawBong\DrawBong.java
目录 0 2018-05-03 21:39 Bong\src\End\
文件 467 2018-05-08 14:22 Bong\src\End\EndJfr
文件 467 2018-05-03 22:19 Bong\src\End\EndPanel.java
目录 0 2018-05-03 21:08 Bong\src\main\
文件 230 2018-05-03 21:48 Bong\src\main\BangMain.java
目录 0 2018-05-03 14:39 Bong\src\Panel\
文件 1674 2018-05-03 22:06 Bong\src\Panel\MyPanel.java
评论
共有 条评论