Java扫雷游戏源代码.docx
- 文档编号:7562385
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:17
- 大小:18.55KB
Java扫雷游戏源代码.docx
《Java扫雷游戏源代码.docx》由会员分享,可在线阅读,更多相关《Java扫雷游戏源代码.docx(17页珍藏版)》请在冰豆网上搜索。
Java扫雷游戏源代码
importjava.awt.BorderLayout;
importjava.awt.Container;
importjava.awt.Font;
importjava.awt.GridLayout;
importjava.awt.Insets;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.awt.event.MouseAdapter;
importjava.awt.event.MouseEvent;
importjavax.swing.JButton;
importjavax.swing.JFrame;
importjavax.swing.JLabel;
importjavax.swing.JMenu;
importjavax.swing.JMenuBar;
importjavax.swing.JMenuItem;
importjavax.swing.JPanel;
importjavax.swing.Timer;
publicclassScanLei1extendsJFrameimplementsActionListener{
privatestaticfinallongserialVersionUID=1L;
privateContainercontentPane;
privateJButtonbtn;
privateJButton[]btns;
privateJLabelb1;
privateJLabelb2;
privateJLabelb3;
privateTimertimer;
privateintrow=9;
privateintcol=9;
privateintbon=10;
privateint[][]a;
privateintb;
privateint[]a1;
privateJPanelp,p1,p2,p3;
publicScanLei1(Stringtitle){
super(title);
contentPane=getContentPane();
setSize(297,377);
this.setBounds(400,100,400,500);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
timer=newTimer(1000,(ActionListener)this);
a=newint[row+2][col+2];
initGUI();
}
publicvoidinitGUI(){
p3=newJPanel();
b=bon;
JMenuBarmenuBar=newJMenuBar();
JMenumenu1=newJMenu("游戏");
JMenumenu2=newJMenu("帮助");
JMenuItemmi1=newJMenuItem("初级");
JMenuItemmi2=newJMenuItem("中级");
JMenuItemmi3=newJMenuItem("高级");
mi1.addActionListener(this);
menu1.add(mi1);
mi2.addActionListener(this);
menu1.add(mi2);
mi3.addActionListener(this);
menu1.add(mi3);
menuBar.add(menu1);
menuBar.add(menu2);
p3.add(menuBar);
b1=newJLabel(bon+"");
a1=newint[bon];
btn=newJButton("开始");
btn.addActionListener(this);
b2=newJLabel("0");
b3=newJLabel("");
btns=newJButton[row*col];
p=newJPanel();
p.setLayout(newBorderLayout());
contentPane.add(p);
p.add(p3,BorderLayout.NORTH);
//combo=newJComboBox(newObject[]{"初级","中级","高级"});
//加监听
/*combo.addItemListener(newItemListener(){
}});*/
p1=newJPanel();
//在那个位置
//((FlowLayout)p1.getLayout()).setAlignment(FlowLayout.RIGHT);
p1.add(b1);
p1.add(btn);
p1.add(b2);
p1.add(b3);
p.add(p3,BorderLayout.NORTH);
p.add(p1,BorderLayout.CENTER);
p2=newJPanel();
p2.setLayout(newGridLayout(row,col,0,0));
for(inti=0;i btns[i]=newJButton(""); btns[i].setMargin(newInsets(0,0,0,0)); btns[i].setFont(newFont(null,Font.BOLD,25)); btns[i].addActionListener(this); btns[i].addMouseListener(newNormoreMouseEvent()); p2.add(btns[i]); } contentPane.add(p,BorderLayout.NORTH); contentPane.add(p2,BorderLayout.CENTER); } publicvoidgo(){ setVisible(true); } publicstaticvoidmain(String[]args){ newScanLei1("扫雷").go(); } publicvoidout(int[][]a,JButton[]btns,ActionEvente,inti,intx,inty){ intp=1; if(a[x][y]==0){ a[x][y]=10; btns[i].setEnabled(false);//33 for(intl=y-1;l<=y+1;l++){ intm=x-1-1; intn=l-1; p=1; System.out.println(a[1][2]); if(n>-1&&n { for(intq=0;q if(((n+col*q)>=(m*col))&&((n+col*q)<(m+1)*col)){ if(a[x-1][l]! =0&&a[x-1][l]! =10){ btns[n+col*q].setText(a[x-1][l]+""); a[x-1][l]=10; btns[n+col*q].setEnabled(false); } elseif(a[x-1][l]==0){ //a[x-1][l]=10; btns[n+col*q].setEnabled(false); out(a,btns,e,n+col*q,x-1,l);////55//// a[x-1][l]=10; btns[n+col*q].setEnabled(false); } p=0; } } } p=1; m=x; if(n>-1&&n { for(intq=0;q if(((n+col*q)>=(m*col))&&((n+col*q)<(m+1)*col)){ if(a[x+1][l]! =0&&a[x+1][l]! =10){ btns[n+col*q].setText(a[x+1][l]+""); a[x+1][l]=10; btns[n+col*q].setEnabled(false); } elseif(a[x+1][l]==0){ out(a,btns,e,n+col*q,x+1,l);///55//// a[x+1][l]=10; btns[n+col*q].setEnabled(false); } p=0; } } } } intm=x-1; intn=y-1-1; p=1; if(n>-1&&n { for(intq=0;q if(((n+col*q)>=(m*col))&&((n+col*q)<(m+1)*col)){ if(a[x][y-1]! =0&&a[x][y-1]! =10){ btns[n+col*q].setText(a[x][y-1]+""); a[x][y-1]=10; btns[n+col*q].setEnabled(false); } elseif(a[x][y-1]==0){ out(a,btns,e,n+col*q,x,y-1); a[x][y-1]=10; btns[n+col*q].setEnabled(false); } p=0; } } } p=1; m=x-1; n=y+1-1; if(n>-1&&n { for(intq=0;q if(((n+col*q)>=(m*col))&&((n+col*q)<(m+1)*col)){ if(a[x][y+1]! =0&&a[x][y+1]! =10){ btns[n+col*q].setText(a[x][y+1]+""); a[x][y+1]=10; btns[n+col*q].setEnabled(false); } elseif(a[x][y+1]==0){ out(a,btns,e,n+col*q,x,y+1); a[x][y+1]=10; btns[n+col*q].setEnabled(false); } p=0; } } } } } publicvoidactionPerformed(ActionEvente){ if(e.getActionCommand()=="初级"){ row=9; col=9; bon=10; a1=newint[bon]; b=bon; //setSize(297,377); a=newint[row+2][col+2]; this.remove(p2); timer.stop(); b1.setText("10"); b2.setText("0"); b3.setText(""); btns=newJButton[row*col]; p2=newJPanel(); p2.setLayout(newGridLayout(row,col,0,0)); for(inti=0;i btns[i]=newJButton(""); btns[i].setMargin(newInsets(0,0,0,0)); btns[i].setFont(newFont(null,Font.BOLD,25)); btns[i].addActionListener(this); btns[i].addMouseListener(newNormoreMouseEvent()); p2.add(btns[i]); } contentPane.add(p2,BorderLayout.CENTER); //setSize(297,377); this.pack(); for(inti=0;i btns[i].setText(""); btns[i].setEnabled(true); } for(inti=0;i for(intj=0;j a[i][j]=0; } } }elseif(e.getActionCommand()=="中级"){ row=16; col=16; bon=40; //setSize(33*col,33*row+80); a1=newint[bon]; a=newint[row+2][col+2]; b=bon; this.remove(p2); timer.stop(); b1.setText("40"); b2.setText("0"); b3.setText(""); btns=newJButton[row*col]; p2=newJPanel(); p2.setLayout(newGridLayout(row,col,0,0)); for(inti=0;i btns[i]=newJButton(""); btns[i].setMargin(newInsets(0,0,0,0)); btns[i].setFont(newFont(null,Font.BOLD,25)); btns[i].addActionListener(this); btns[i].addMouseListener(newNormoreMouseEvent()); p2.add(btns[i]); } contentPane.add(p2,BorderLayout.CENTER); this.pack(); //setSize(33*col,33*row+80); for(inti=0;i btns[i].setText(""); btns[i].setEnabled(true); } for(inti=0;i for(intj=0;j a[i][j]=0; } } }elseif(e.getActionCommand()=="高级"){ row=16; col=32; bon=99; setSize(33*col,33*row+80); a1=newint[bon]; a=newint[row+2][col+2]; b=bon; this.remove(p2); timer.stop(); b1.setText("99"); b2.setText("0"); b3.setText(""); btns=newJButton[row*col]; p2=newJPanel(); p2.setLayout(newGridLayout(row,col,0,0)); for(inti=0;i btns[i]=newJButton(""); btns[i].setMargin(newInsets(0,0,0,0)); btns[i].setFont(newFont(null,Font.BOLD,25)); btns[i].addActionListener(this); btns[i].addMouseListener(newNormoreMouseEvent()); p2.add(btns[i]); } contentPane.add(p2,BorderLayout.CENTER); //setSize(33*col,33*row+80); this.pack(); for(inti=0;i btns[i].setText(""); btns[i].setEnabled(true); } for(inti=0;i for(intj=0;j a[i][j]=0; } } } if(e.getSource()==btn){ timer.start(); b=bon; b3.setText(""); //System.out.println(bon); //清空 for(inti=0;i btns[i].setText(""); btns[i].setEnabled(true); } for(inti=0;i for(intj=0;j a[i][j]=0; } } //产生随机数 for(inti=0;i {intp=1; intm=(int)(Math.random()*row*col); while(p==1){ intl=1; intj; for(j=0;j if(a1[j]==m){ m=(int)(Math.random()*row*col); l=0; } } if(j==i){ a1[i]=m; p=0; } } } b1.setText(bon+""); b2.setText("0"); //布雷 for(inti=0;i intx=(a1[i]/col+1); inty=(a1[i]%col+1); a[x][y]=100; } for(inti=0;i for(intj=0;j if(i==0||j==0||i==row+1||j==col+1){ a[i][j]=0; } } } for(inti=1;i<=row;i++){ for(intj=1;j<=col;j++){ if(a[i][j]! =100){ for(intl=j-1;l<=j+1;l++){ if(a[i-1][l]==100){ a[i][j]++; } if(a[i+1][l]==100){ a[i][j]++; } } if(a[i][j-1]==100){ a[i][j]++; } if(a[i][j+1]==100){ a[i][j]++; } } } } } if(e.getSource()==timer) { Stringtime=b2.getText().trim(); intt=Integer.parseInt(time); //System.out.println(t); if(t>=600){ timer.stop(); }else{ t++; b2.setText(t+""); } } for(inti=0;i if(btns[i].getText()! ="★") { intx=i/col+1; inty=i%col+1; if(e.getSource()==btns[i]&&a[x][y]==100){ btns[i].setText("★"); btns[i].setEnabled(false); a[x][y]=10; for(intk=0;k intm1=k/col+1; intn1=k%col+1; i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 扫雷 游戏 源代码