import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
public class MainFrame extends JFrame
{
MainPanel mainPanel;
Thread t=new Thread(){
public void run()
{
try
{
while(true)
{
String title=MainFrame.this.getTitle();
if(title.charAt(title.length()-1)==' ')
MainFrame.this.setTitle(title.substring(title.length()-2,title.length())+title.substring(0,title.length()-2));
else
MainFrame.this.setTitle(title.charAt(title.length()-1)+title.substring(0,title.length()-1));
this.sleep(100);
}
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
}
};
public MainFrame(int number)
{
mainPanel=new MainPanel(number);
StringBuffer title=new StringBuffer("我的游戏空间");
for(int i=0;i<150;i++)
title.append(" ");
this.setTitle(title.toString());
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.getContentPane().add(mainPanel);
this.setResizable(false);
this.t.start();
}
public static void main(String[] args)
{
int number;
do
{
String a=JOptionPane.showInputDialog(null, new String("请输入雷数(1~479)"),new String("难度选择"),JOptionPane.QUESTION_MESSAGE);
if(a==null)
return;
try
{
number=Integer.parseInt(a);
}
catch(Exception e)
{
number=0;
}
}while(number<1||number>479);
JFrame.setDefaultLookAndFeelDecorated(true);
MainFrame mainFrame=new MainFrame(number);
mainFrame.setSize(610,355);
mainFrame.setVisible(true);
}
}
class MainPanel extends JPanel
{
boolean is_Win;
boolean last;
boolean win;
boolean game_over;
Random rand=new Random();
int[] bomb;
int [] sign=new int[480];
int [] label=new int[480];
boolean [] isClicked=new boolean[480];
boolean [] isBomb=new boolean[480];
Image button_up;
Image button_down;
Image bomb_black;
Image bomb_dead;
Image flag;
Image wrong_flag;
Image [] number_pic=new Image[9];
int x;
int y;
boolean isLeftDown=false;
boolean isRightDown=false;
boolean isMiddleDown=false;
private void init()
{
int bomb_number=0;
do
{
String a=JOptionPane.showInputDialog(null, new String("请输入雷数(1~479)"),new String("难度选择"),JOptionPane.QUESTION_MESSAGE);
if(a==null)
return;
try
{
bomb_number=Integer.parseInt(a);
}
catch(Exception e)
{
bomb_number=0;
}
}while(bomb_number<1||bomb_number>479);
last=false;
win=false;
game_over=false;
is_Win=false;
bomb=new int[bomb_number];
for(int i=0;i<sign.length;i++)
sign[i]=-1;
for(int i=0;i<isClicked.length;i++)
isClicked[i]=true;
for(int i=0;i<isBomb.length;i++)
isBomb[i]=false;
for(int i=0;i<bomb.length;i++)
{
bomb[i]=rand.nextInt(480);
for(int j=0;j<i;j++)
{
if(bomb[j]==bomb[i])
{
i--;
break;
}
}
}
for(int i=0;i<bomb.length;i++)
isBomb[bomb[i]]=true;
for(int i=0;i<label.length;i++)
{
int count=0;
int [] number=initArray(i);
for(int in=0;in<number.length;in++)
{
int j=0;
for(;j<bomb.length&&bomb[j]!=number[in];j++);
if(j!=bomb.length)
count++;
}
label[i]=count;
}
}
private int[] initArray(int index)
{
int [] number;
if(index==0)
number=new int[]{1,30,31};
else if(index==29)
number=new int[]{28,59,58};
else if(index==450)
number=new int[]{420,421,451};
else if(index==479)
number=new int[]{478,448,449};
else if(index>0&&index<29)
number=new int[]{index-1,index+1,index+30,index+31,index+29};
else if(index>450&&index<479)
number=new int[]{index-1,index+1,index-30,index-31,index-29};
else if(index==30||index==60||index==90||index==120||index==150||index==180||index==210||index==240||index==270||index==300||index==330||index==360||index==390||index==420)
number=new int[]{index-30,index-29,index+1,index+30,index+31};
else if(index==59||index==89||index==119||index==149||index==179||index==209||index==239||index==269||index==299||index==329||index==359||index==389||index==419||index==449)
number=new int[]{index-30,index-31,index-1,index+29,index+30};
else
number=new int[]{index-31,index-30,index-29,index-1,index+1,index+29,index+30,index+31};
return number;
}
private boolean isWin()
{
for(int i=0;i<sign.length;i++)
if(sign[i]!=0&&!isBomb[i])
return false;
return true;
}
private boolean isGameover(int index)
{
int i=0;
for(;i<bomb.length&&index!=bomb[i];i++);
if(i!=bomb.length)
return true;
return false;
}
private void setMousePoint(MouseEvent e)
{
x=e.getX();
y=e.getY();
}
private void disposeMiddleButtonReleased(int index)
{
int [] number=initArray(index);
int count=0;
for(int i=0;i<number.length;i++)
if(sign[number[i]]==-5)
count++;
if(label[index]==count)
{
for(int i=0;i<number.length;i++)
if(sign[number[i]]==-2)
disposeLeftButtonClick(number[i]);
}
else
{
for(int i=0;i<number.length;i++)
if(sign[number[i]]==-2)
sign[number[i]]=-1;
}
}
private void disposeMiddleButtonPressed(int index)
{
int [] number=initArray(index);
for(int i=0;i<number.length;i++)
if(sign[number[i]]==-1)
sign[number[i]]=-2;
}
private void disposeMiddleButtonDragged(int index)
{
int [] number=initArray(index);
for(int i=0;i<number.length;i++)
if(sign[number[i]]==-2)
sign[number[i]]=-1;
}
private void disposeLeftButtonClick(int index)
{
int i=0;
for(;i<bomb.length&&bomb[i]!=index;i++);
if(i!=bomb.length)
{
sign[index]=-4;
for(i=0;i<bomb.length;i++)
if(sign[bomb[i]]==-1)
sign[bomb[i]]=-3;
for(i=0;i<sign.length;i++)
if(sign[i]==-5&&!isBomb[i])
sign[i]=-6;
game_over=isGameover(index);
}
else
{
sign[index]=0;
isClicked[index]=false;
if(label[index]==0)
disposeLabel(index);
}
}
private void disposeLabel(int index)
{
int [] number=initArray(index);
for(int i=0;i<number.length;i++)
if(isClicked[number[i]])
disposeLeftButtonClick(number[i]);
}
public MainPanel(int bomb_number)
{
bomb=new int[bom
没有合适的资源?快使用搜索试试~ 我知道了~
Javasaolei.rar_java经典游戏
共73个文件
jpg:30个
bmp:17个
class:10个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 79 浏览量
2022-09-23
23:29:42
上传
评论
收藏 305KB RAR 举报
温馨提示
windows的经典游戏,用java开发的扫雷游戏源码。
资源推荐
资源详情
资源评论
收起资源包目录
Javasaolei.rar (73个子文件)
Java扫雷
扫雷W.exe 240KB
bomb
3.bmp 824B
success.bmp 2KB
1.bmp 824B
4.bmp 824B
8.bmp 776B
bomb.bmp 824B
wrong.bmp 824B
2.bmp 824B
smile.bmp 2KB
5.bmp 776B
blank.bmp 824B
o.bmp 2KB
flag.bmp 824B
7.bmp 776B
cry.bmp 2KB
danger.bmp 824B
6.bmp 824B
扫雷.jar 91KB
bak
扫雷.jpx.local 3KB
src
MainFrame.jbx 132B
8.JPG 9KB
MainFrame.class 737B
smile.GIF 1016B
dead.jpg 757B
wrong.jpg 13KB
cry.GIF 1010B
0.JPG 8KB
button_up.JPG 8KB
2.JPG 762B
5.JPG 10KB
MainPanel$2.class 716B
6.JPG 745B
4.JPG 755B
MainPanel.class 3KB
MainFrame.java 16KB
1.JPG 764B
3.JPG 766B
flag.jpg 762B
MainPanel$1.class 806B
bomb.JPG 768B
button_down.JPG 8KB
7.JPG 10KB
MainPanel$3.class 703B
classes
8.JPG 9KB
MainFrame.class 2KB
smile.GIF 1016B
dead.jpg 757B
package cache
unnamed package.dep2 5KB
wrong.jpg 13KB
cry.GIF 1010B
0.JPG 8KB
button_up.JPG 8KB
2.JPG 762B
5.JPG 10KB
MainPanel$2.class 2KB
6.JPG 745B
4.JPG 755B
MainPanel.class 8KB
1.JPG 764B
Thumbs.db 21KB
3.JPG 766B
flag.jpg 762B
MainPanel$1.class 1KB
MainFrame$1.class 1KB
bomb.JPG 768B
button_down.JPG 8KB
7.JPG 10KB
hs_err_pid3316.log 7KB
扫雷-linux 165KB
扫雷.exe 197KB
扫雷.jpx 5KB
www.pudn.com.txt 218B
共 73 条
- 1
资源评论
APei
- 粉丝: 64
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功