java源代码1.docx

上传人:b****8 文档编号:10836234 上传时间:2023-02-23 格式:DOCX 页数:15 大小:17.46KB
下载 相关 举报
java源代码1.docx_第1页
第1页 / 共15页
java源代码1.docx_第2页
第2页 / 共15页
java源代码1.docx_第3页
第3页 / 共15页
java源代码1.docx_第4页
第4页 / 共15页
java源代码1.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

java源代码1.docx

《java源代码1.docx》由会员分享,可在线阅读,更多相关《java源代码1.docx(15页珍藏版)》请在冰豆网上搜索。

java源代码1.docx

java源代码1

importjava.util.*;

importjava.awt.*;

importjava.awt.event.*;

importjavax.swing.*;

publicclassClearbomb

extendsWindowAdapterimplementsActionListener//雷的类

{

Initdatadata=newInitdata();

Framef_main=newFrame("扫雷");//创建主窗口

Panelp_up1=newPanel();//面板

Panelp_down1=newPanel(newGridLayout(9,9,1,1));

Panelp_up2=newPanel();

Panelp_down2=newPanel();

Labell_left=newLabel("0");//标签

Labell_right=newLabel("10");

JButtonsmile=newJButton();//创建不带有设置文本或图标的按钮

MenuBarmenub=newMenuBar();//菜单条

Fontft=newFont("Seril",Font.BOLD,18);//设置字体为Seril,18磅,粗体,

JButtonbunit[][]=newJButton[9][9];//创建按钮

Labellunit[][]=newLabel[9][9];//创建标签

Panelpunit[][]=newPanel[9][9];

Dialogd1=newDialog(f_main,"恭喜",true);//构造一个标题为"恭喜"不可见对话框,依赖窗口f_main,有模式

Dialogd2=newDialog(f_main,"帮助",true);

Buttonb1=newButton("确定");

Buttonb2=newButton("确定");

Labell1=newLabel("恭喜通关,再来一局吗?

");

Labell2=newLabel("把所有非地雷的格子揭开即胜利;踩到地雷格子就算失败。

");

CardLayoutc=newCardLayout();//创建新卡片布局

Iconbomb=newImageIcon("bomb.gif");//图标

Icontouch=newImageIcon("touch.gif");

Iconfalsebomb=newImageIcon("falsebomb.gif");

Iconsmileface=newImageIcon("smileface.gif");

Icondie=newImageIcon("die.gif");

Iconpuzzle=newImageIcon("puzzle.gif");

Iconflag=newImageIcon("flag.gif");

Timerstimer=newTimers();//创建一个计时器

booleanstop=true;

privateintremainbomb=10;

privatebooleanappear=true;//控制对话框是否显示

booleanthreadstart=true;

publicvoiddisplay(){

//主框架

f_main.setSize(241,342);//窗口大小

f_main.setLocation(300,200);//窗口位置

f_main.addWindowListener(this);//将窗口f_main作为主程序监视器

f_main.setLayout(null);//f_main窗口布局为空

f_main.setBackground(Color.gray);//设置组件的背景色为灰色

f_main.setMenuBar(menub);//将菜单条添加到窗口的顶端

//菜单

Menum_game=newMenu("游戏");

Menum_help=newMenu("帮助");

menub.add(m_game);//菜单条上添加菜单

menub.add(m_help);

m_game.addActionListener(this);

m_help.addActionListener(this);

m_game.add(newMenuItem("开局",newMenuShortcut(KeyEvent.VK_N)));//添加菜单项设置开局快捷键为CTRL+N

m_game.addSeparator();//分隔线

m_game.add(newMenuItem("初级"));

m_game.add(newMenuItem("中级"));

m_game.add(newMenuItem("高级"));

m_game.addSeparator();//分隔线

m_game.add(newMenuItem("退出",newMenuShortcut(KeyEvent.VK_E)));//设置退出快捷键为CTRL+E

m_help.add(newMenuItem("游戏规则",newMenuShortcut(KeyEvent.VK_H)));//设置帮助快捷键为CTRL+H

//面板

p_up1.setBackground(Color.lightGray);

p_up1.setSize(225,50);

p_up1.setLocation(1,1);

p_down1.setBackground(Color.gray);//大方格颜色

p_down1.setSize(225,225);

p_down1.setLocation(1,1);

p_up1.setLayout(null);

p_up2.setBackground(Color.gray);//小方格颜色

p_up2.setLocation(7,44);

p_up2.setSize(227,52);

p_down2.setBackground(Color.white);//大方框颜色

p_down2.setLocation(7,104);

p_down2.setSize(227,227);

p_up2.setLayout(null);

p_down2.setLayout(null);

//标签与按钮

l_left.setFont(ft);//标签字体

l_right.setFont(ft);

l_left.setLocation(8,8);//标签位置

l_left.setSize(80,30);//标签大小

l_left.setBackground(Color.red);//标签背景色

l_right.setLocation(137,8);

l_right.setSize(80,30);

l_right.setBackground(Color.red);

smile.setIcon(smileface);//标签按钮图标

smile.setLocation(98,8);//按钮位置

smile.setSize(30,30);//按钮大小

smile.setBackground(Color.white);//按钮背景色

smile.addActionListener(this);//添加动作监视器

p_up1.add(l_left);

p_up1.add(smile);

p_up1.add(l_right);

//雷区

for(inti=0;i<9;i++)

for(intj=0;j<9;j++){

bunit[i][j]=newJButton();

punit[i][j]=newPanel(c);

lunit[i][j]=newLabel();

bunit[i][j].setBackground(Color.lightGray);//格子背景色

bunit[i][j].addMouseListener(newUnitEvent(i,j));

bunit[i][j].addActionListener(this);

lunit[i][j].setBackground(Color.white);

punit[i][j].add(lunit[i][j],"down");

punit[i][j].add(bunit[i][j],"up");

p_down1.add(punit[i][j]);

}

p_up2.add(p_up1);

p_down2.add(p_down1);

f_main.add(p_up2);

f_main.add(p_down2);

f_main.setResizable(false);

f_main.setVisible(true);

//对话框

d1.add(l1,"Center");

d1.setSize(300,150);

d1.setLocation(200,200);

d1.setLayout(newFlowLayout(FlowLayout.CENTER));

d1.addWindowListener(this);

b1.setSize(50,30);

b1.setLocation(75,50);

b1.addActionListener(this);

d1.add(b1);

d1.setVisible(false);

d2.add(l2,"Center");

d2.setSize(550,150);

d2.setLocation(200,200);

d2.setLayout(newFlowLayout(FlowLayout.CENTER));

d2.addWindowListener(this);

b2.setSize(50,30);

b2.addActionListener(this);

d2.add(b2);

d2.setVisible(false);

init();

}

publicvoidinit(){//

data.init();

appear=true;

remainbomb=10;

for(inti=0;i<9;i++)

for(intj=0;j<9;j++){

bunit[i][j].setIcon(null);

lunit[i][j].setText(data.initlunit(i,j)+"");

if(!

data.rand[i][j])

lunit[i][j].setText("*");

if(lunit[i][j].getText().equals("0")&&data.rand[i][j])

lunit[i][j].setText("");

c.last(punit[i][j]);

}

}

//处理事件接口

publicvoidactionPerformed(ActionEvente){

if(e.getSource()==b1){//扫雷成功后,处理事件

appear=false;

d1.setVisible(false);

}

if(e.getSource()==b2)//帮助菜单的监视器处理接口

d2.setVisible(false);

if(e.getActionCommand()=="游戏规则")

d2.setVisible(true);

if(e.getActionCommand()=="开局")

gamestart();

if(e.getActionCommand()=="退出")

System.exit

(1);

for(inti=0;i<9;i++)

for(intj=0;j<9;j++){

stop=false;

if(e.getSource()==bunit[i][j]){

if(lunit[i][j].getText().equals("*")){

bunit[i][j].setIcon(touch);

data.rand[i][j]=true;

over();

return;

}

else{

if(lunit[i][j].getText().equals("")){

blankarea(i,j);

}

elsec.first(punit[i][j]);

}

if(threadstart==true){

newTimers().start();

threadstart=false;

}

}

}

if(e.getSource()==smile){

gamestart();

}

for(inti=0;i<9;i++)

for(intj=0;j<9;j++){

if(lunit[i][j].getText().equals("*")&&

bunit[i][j].getIcon()==flag&&

remainbomb==0&&appear==true){

stop=true;

d1.setVisible(true);

}

}

}

publicvoidgamestart(){//游戏重新开始

smile.setIcon(smileface);

init();

threadstart=true;

stop=true;

for(inti=0;i<9;i++)

for(intj=0;j<9;j++){

bunit[i][j].setIcon(null);

bunit[i][j].setEnabled(true);

}

l_right.setText("10");

l_left.setText("0");

}

//游戏失败

publicvoidover(){

stop=true;

smile.setIcon(touch);

for(inti=0;i<9;i++)

for(intj=0;j<9;j++){

c.first(punit[i][j]);

if(lunit[i][j].getText().equals("*")&&bunit[i][j].getIcon()!

=touch){

bunit[i][j].setIcon(bomb);

c.last(punit[i][j]);

}

if(bunit[i][j].getIcon()==touch){

bunit[i][j].setIcon(die);

c.last(punit[i][j]);

}

bunit[i][j].setEnabled(false);

}

}

//显示空白区域

publicvoidblankarea(inti,intj){

data.appear[i][j]=false;

if(lunit[i][j].getText().equals("*"))return;

else{

if(lunit[i][j].getText().equals(""))c.first(punit[i][j]);

else{

c.first(punit[i][j]);

return;

}

}

if(i>0&&j>0&&data.appear[i-1][j-1])

blankarea(i-1,j-1);

if(i>0&&data.appear[i-1][j]==true)

blankarea(i-1,j);

if(i>0&&j<8&&data.appear[i-1][j+1])

blankarea(i-1,j+1);

if(j>0&&data.appear[i][j-1])

blankarea(i,j-1);

if(j<8&&data.appear[i][j+1])

blankarea(i,j+1);

if(i<8&&j>0&&data.appear[i+1][j-1])

blankarea(i+1,j-1);

if(i<8&&data.appear[i+1][j])

blankarea(i+1,j);

if(i<8&&j<8&&data.appear[i+1][j+1])

blankarea(i+1,j+1);

}

//程序入口main方法

publicstaticvoidmain(String[]args){

newClearbomb().display();

}

publicvoidwindowClosing(WindowEvente){

if(e.getSource()==d1)

d1.setVisible(false);

elseif(e.getSource()==d2)

d2.setVisible(false);

else

System.exit

(1);

}

//内部类,处理鼠标单击事件

classUnitEventextendsMouseAdapter{

privateinta,b;

publicUnitEvent(inta,intb){

this.a=a;

this.b=b;

}

publicvoidmouseClicked(MouseEvente){

if(e.getModifiers()==InputEvent.BUTTON1_MASK){

;

}

if(e.getModifiers()==InputEvent.BUTTON2_MASK){

}

if(e.getModifiers()==InputEvent.BUTTON3_MASK){

if(bunit[a][b].getIcon()==null){

bunit[a][b].setIcon(flag);

remainbomb--;

l_right.setText(""+remainbomb);

if(lunit[a][b].getText().equals("*")&&//显示对话框

bunit[a][b].getIcon()==flag&&

remainbomb==0){

stop=true;

d1.setVisible(true);

}

return;

}

if(bunit[a][b].getIcon()==flag){//标记与凝问的切换

bunit[a][b].setIcon(puzzle);

remainbomb++;

l_right.setText(""+remainbomb);

return;

}

if(bunit[a][b].getIcon()==puzzle){

bunit[a][b].setIcon(null);

return;

}

}

}

}

classTimersextendsThread{//内部类,处理时间的显示

publicvoidrun(){

inti=0;

while(!

stop){

try{

sleep(1000);

}

catch(InterruptedExceptione){

System.out.println(e.getMessage());

}

i++;

l_left.setText(""+i);

}

return;

}

}

}

classInitdata{//初始数据

publicbooleanrand[][]=newboolean[9][9];

publicbooleanappear[][]=newboolean[9][9];

publicvoidinit(){

for(inti=0;i<=8;i++)

for(intj=0;j<=8;j++){

rand[i][j]=true;

appear[i][j]=true;

}

Randomr=newRandom();

intbombcount=0;

for(;;){

inti;

i=r.nextInt(81);

if(rand[i/9][i%9]){

rand[i/9][i%9]=false;

bombcount++;

}

if(bombcount==10)break;

}

}

publicintinitlunit(inti,intj){

intsum=0;

if(i>0&&j>0&&!

rand[i-1][j-1])sum++;

if(j>0&&!

rand[i][j-1])sum++;

if(i<8&&j>0&&!

rand[i+1][j-1])sum++;

if(i<8&&!

rand[i+1][j])sum++;

if(i<8&&j<8&&!

rand[i+1][j+1])sum++;

if(j<8&&!

rand[i][j+1])sum++;

if(i>0&&j<8&&!

rand[i-1][j+1])sum++;

if(i>0&&!

rand[i-1][j])sum++;

returnsum;

}

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1