亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mainexe.java

?? java挖雷游戲 一個運用java線程設計的一個游戲代碼 不用修改就可以運行
?? JAVA
字號:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
import java.lang.*;
import java.applet.*;

//Bomb 開始 定義地雷
class Bomb extends JLabel{
	//存放圖像標記:分別為數字0-8;
	public static Icon icon[]={new ImageIcon("icon/0.jpg"),
							   new ImageIcon("icon/1.jpg"),
							   new ImageIcon("icon/2.jpg"),
							   new ImageIcon("icon/3.jpg"),
							   new ImageIcon("icon/4.jpg"),
							   new ImageIcon("icon/5.jpg"),
							   new ImageIcon("icon/6.jpg"),
							   new ImageIcon("icon/7.jpg"),
							   new ImageIcon("icon/8.jpg"),
	//地雷標記:踩中地雷 地雷 地雷標識錯誤
							   new ImageIcon("icon/9.jpg"),
							   new ImageIcon("icon/10.jpg"),
							   new ImageIcon("icon/11.jpg"),
	//懷疑按下 地雷標識 懷疑 默認  
							   new ImageIcon("icon/12.jpg"),
							   new ImageIcon("icon/13.jpg"),
							   new ImageIcon("icon/14.jpg"),
							   new ImageIcon("icon/15.jpg")
	};
	
	public int num_x,num_y; //第幾號方塊 
	public int BombRoundCount; //周圍雷數 
	public boolean isBomb; //是否為雷 
	public boolean isClicked; //是否被點擊 
	public int BombFlag; //探雷標記 
	
	public Bomb(int x,int y) {
		BombFlag = -1; 
		//num_x = x; 
		//num_y = y; 
		BombRoundCount = 0; 
		isBomb = false; 
		isClicked = false; 
		
		setIcon(icon[15]); 
	}
	
	//設置顯示圖標
	public void setBombIcon(int iconNum){
		
		setIcon(icon[iconNum]);
	}
	
	//重置
	public void reSet(){
		BombFlag = -1; 
		BombRoundCount = 0; 
		isBomb = false; 
		isClicked = false; 
		
		setIcon(icon[15]);
		
	}//重置完畢

}
//Bomb 結束

//LayTime 開始 顯示用時的JLabel控件
class LayTime extends JLabel implements Runnable{
	private volatile Thread t;
	
	LayTime(){
   		super();
   		setText("0");
    }
    
    public void start(){
    	t=new Thread(this,"showtime");
    	t.start();
    }
    
    public void run(){
    	int usedtime=0;
    	
    	Thread thisThread = Thread.currentThread();
    	while(t==thisThread){
			try{
				usedtime++;
				setText(Integer.toString(usedtime));
				t.sleep(1000);
				
			} catch(InterruptedException e){
				setText("無法準確顯示時間");
			}
		}
    }
    
    public void stopShow(){
    	t=null;
    }
}
//LayTime結束

//MyFrame 開始 定義程序運行框架
class MyFrame extends JFrame implements MouseListener{
	
	public int RowNum=16,LineNum=30,BombNum=99; //當前行,列,雷數
	private Panel mainPanel = new Panel(); 
    private Bomb[][] bombButton;
    
	//顯示狀態的控件
	private JPanel StatusPanel= new JPanel();
	private JLabel LeftBomb= new JLabel(Integer.toString(BombNum));//剩余雷數
	private LayTime UseTime = new LayTime();//使用時間
	private boolean gameBegin=false;//用于顯示用時的控制變量
	
	private Icon StatusBobIcon[]={new ImageIcon("icon/16.jpg"),
								new ImageIcon("icon/17.jpg"),
								new ImageIcon("icon/18.jpg"),
								new ImageIcon("icon/19.jpg"),
								new ImageIcon("icon/20.jpg"),
	};
	private JLabel StatusBon=new JLabel(StatusBobIcon[0]);
    
    private boolean gameOver=false; //游戲是否結束
    
	//初始化
	MyFrame(){
		
	    super("掃雷 0.8");
	    
	    Container c=getContentPane(); 
	    
	    c.setBackground(Color.gray); 
		c.setLayout(new BorderLayout()); 
		
		//初始化狀態標簽開始
		StatusPanel.add(LeftBomb,BorderLayout.EAST);
		StatusPanel.add(StatusBon);//,BorderLayout.CENTER);
		StatusPanel.add(UseTime);//,BorderLayout.WEST);
		
		
		c.add(StatusPanel,"North"); //初始化狀態標簽完畢
		
		StatusBon.addMouseListener(new MouseAdapter(){
			public void mouseClicked(MouseEvent me){

				replay();
				StatusBon.setIcon(StatusBobIcon[0]);
			}
			
			public void mousePressed(MouseEvent e){
				StatusBon.setIcon(StatusBobIcon[1]);
			}
			});
		
		//初始化掃雷窗口
		mainPanel.setLayout(new GridLayout(RowNum,LineNum));
		bombButton=new Bomb[RowNum][]; 
		for(int i = 0 ; i < RowNum; i++) { 
		
			bombButton[ i ]=new Bomb[LineNum]; 
		} 
		for(int i=0;i<RowNum;i++)
		  for(int j=0;j<LineNum;j++){
		  	bombButton[i][j]= new Bomb(i,j);
		  	mainPanel.add(bombButton[i][j]);
		}
		
		c.add(mainPanel,"Center");//初始化掃雷窗口完畢
		creatBomb();//開始布雷
		CountRoundBomb();//計算周圍雷數
		
		mainPanel.addMouseListener(this);//添加監聽器
		
		setLocation(350,200);//確定程序窗口在顯示屏幕中的位置
		setResizable(false);
	    
	    
	}//初始化完畢
	
	//重新開始
	public void replay() {
		UseTime.stopShow();
		UseTime.setText("0");
		LeftBomb.setText(Integer.toString(BombNum));
				
		for(int i=0;i<RowNum;i++)
			for(int j=0;j<LineNum;j++){
				bombButton[ i ][ j ].reSet(); 
		}
		creatBomb();//開始布雷
		CountRoundBomb();//計算周圍雷數
		gameOver=false;
		gameBegin=false;
	}//完畢
	
	//布雷
	public void creatBomb() { 
	
		for(int i=0;i<BombNum;i++) { 
			int x =(int)(Math.random()*(RowNum-1)); 
			int y =(int)(Math.random()*(LineNum-1)); 
		
			if(bombButton[ x ][ y ].isBomb==true) 
			i--; 
			else 
			bombButton[ x ][ y ].isBomb=true ; 
		} 
	} //布雷完畢
	
	//計算雷數
	public void CountRoundBomb(){
		int count;
		
		for(int i=0;i<RowNum;i++)
			for(int j=0;j<LineNum;j++){
			count=0;
			if(bombButton[i][j].isBomb==false){
				if((i-1)>=0&&(j-1)>=0&&(bombButton[i-1][j-1].isBomb==true))
					count++;//左上方
				if((i-1)>=0&&(bombButton[i-1][j].isBomb==true))
					count++;//上方
				if((i-1)>=0&&(j+1)<LineNum&&(bombButton[i-1][j+1].isBomb==true))
					count++;//右上方
				if((j-1)>=0&&(bombButton[i][j-1].isBomb==true))
					count++;//左邊
				if((j+1)<LineNum&&(bombButton[i][j+1].isBomb==true))
					count++;//右邊
				if((i+1)<RowNum&&(j-1)>=0&&(bombButton[i+1][j-1].isBomb==true))
					count++;//左下方
				if((i+1)<RowNum&&(bombButton[i+1][j].isBomb==true))
					count++;//下方
				if((i+1)<RowNum&&(j+1)<LineNum&&(bombButton[i+1][j+1].isBomb==true))
					count++;//右下方
			}
			bombButton[i][j].BombRoundCount=count;	
		}
	}//計算雷數完畢
	
	//挖雷
	public void digBomb(int x,int y){
		if(bombButton[x][y].isBomb==false){//不是地雷
			if(bombButton[x][y].BombRoundCount==0){// 周圍無雷
				bombButton[x][y].setBombIcon(0);
				digZeroBomb(x,y);
				//bombButton[x][y].isClicked=true;
			}
			else{//周圍有雷
				bombButton[x][y].setBombIcon(bombButton[x][y].BombRoundCount);
				bombButton[x][y].isClicked=true;
			}
			
		}
		else{//踩中地雷
			for(int i=0;i<RowNum;i++)
				for(int j=0;j<LineNum;j++){
					if(bombButton[i][j].isBomb==true)
						bombButton[i][j].setBombIcon(10);
			}
			bombButton[x][y].setBombIcon(9);
			StatusBon.setIcon(StatusBobIcon[3]);
			gameOver=true;
			UseTime.stopShow();
		}
	}//挖雷完畢
	
	//當遇到空格周圍沒有地雷時的處理函數
	public void digZeroBomb(int x,int y){
		if(bombButton[x][y].isClicked==false){//此處主要是防止無限循環
			bombButton[x][y].isClicked=true;
			if((x-1)>=0&&(y-1)>=0){
				if(bombButton[x-1][y-1].BombRoundCount==0){//周圍無雷
					bombButton[x-1][y-1].setBombIcon(0);
					//bombButton[x-1][y-1].isClicked=true;
					digZeroBomb(x-1,y-1);
				}
				else{
					bombButton[x-1][y-1].setBombIcon(bombButton[x-1][y-1].BombRoundCount);
					bombButton[x-1][y-1].isClicked=true;
				}	
			}//左上方
			if((x-1)>=0){
				if(bombButton[x-1][y].BombRoundCount==0){//周圍無雷
					//bombButton[x-1][y].isClicked=true;
					bombButton[x-1][y].setBombIcon(0);
					digZeroBomb(x-1,y);
				}
				else{
					bombButton[x-1][y].setBombIcon(bombButton[x-1][y].BombRoundCount);
					bombButton[x-1][y].isClicked=true;
				}	
			}//上方
			if((x-1)>=0&&(y+1)<LineNum){
				if(bombButton[x-1][y+1].BombRoundCount==0){//周圍無雷
					//bombButton[x-1][y+1].isClicked=true;
					bombButton[x-1][y+1].setBombIcon(0);
					digZeroBomb(x-1,y+1);
				}
				else{
					bombButton[x-1][y+1].setBombIcon(bombButton[x-1][y+1].BombRoundCount);
					bombButton[x-1][y+1].isClicked=true;
				}	
			}//右上方
			if((y-1)>=0){
				if(bombButton[x][y-1].BombRoundCount==0){//周圍無雷
					//bombButton[x][y-1].isClicked=true;
					bombButton[x][y-1].setBombIcon(0);
					digZeroBomb(x,y-1);
				}
				else{
					bombButton[x][y-1].setBombIcon(bombButton[x][y-1].BombRoundCount);
					bombButton[x][y-1].isClicked=true;
				}	
			}//左邊
			if((y+1)<LineNum){
				if(bombButton[x][y+1].BombRoundCount==0){//周圍無雷
					//bombButton[x][y+1].isClicked=true;
					bombButton[x][y+1].setBombIcon(0);
					digZeroBomb(x,y+1);
				}
				else{
					bombButton[x][y+1].setBombIcon(bombButton[x][y+1].BombRoundCount);
					bombButton[x][y+1].isClicked=true;
				}	
			}//右邊
			if((x+1)<RowNum&&(y-1)>=0){
				if(bombButton[x+1][y-1].BombRoundCount==0){//周圍無雷
					//bombButton[x+1][y-1].isClicked=true;
					bombButton[x+1][y-1].setBombIcon(0);
					digZeroBomb(x+1,y-1);
				}
				else{
					bombButton[x+1][y-1].setBombIcon(bombButton[x+1][y-1].BombRoundCount);
					bombButton[x+1][y-1].isClicked=true;
				}	
			}//坐下方
			if((x+1)<RowNum){
				if(bombButton[x+1][y].BombRoundCount==0){//周圍無雷
					//bombButton[x+1][y].isClicked=true;
					bombButton[x+1][y].setBombIcon(0);
					digZeroBomb(x+1,y);
				}
				else{
					bombButton[x+1][y].setBombIcon(bombButton[x+1][y].BombRoundCount);
					bombButton[x+1][y].isClicked=true;
				}	
			}//下方
			if((x+1)<RowNum&&(y+1)<LineNum){
				if(bombButton[x+1][y+1].BombRoundCount==0){//周圍無雷
					//bombButton[x+1][y+1].isClicked=true;
					bombButton[x+1][y+1].setBombIcon(0);
					digZeroBomb(x+1,y+1);
				}
				else{
					bombButton[x+1][y+1].setBombIcon(bombButton[x+1][y+1].BombRoundCount);
					bombButton[x+1][y+1].isClicked=true;
				}	
			}//右上方
		}
		
	}//處理完畢
	
	//當按下鼠標按鈕時的處理函數
	public void mouseClicked(MouseEvent e) {  //根據鼠標的左右鍵決定相應的行動
	
		int x=0,y=0;//存放鼠標點擊方塊的坐標
		int z=0;
		
		y=e.getX()/16;
		x=e.getY()/16;
		
		boolean right = SwingUtilities.isRightMouseButton(e);
		if(gameOver==false){
			if(right){//點擊右鍵
				if(bombButton[x][y].isClicked==false){
					z=13+(++bombButton[x][y].BombFlag)%3;
					bombButton[x][y].setBombIcon(z);//確定載入圖像
				}
			}
			if(!right){//點擊左鍵
				if(bombButton[x][y].isClicked==false&&(bombButton[x][y].BombFlag%3!=0)){
					//bombButton[x][y].isClicked=true;
					digBomb(x,y);
				}
			}
		}
		
		if((gameBegin==false)&&(!gameOver)){//此處添加!gameOver主要是當第一次按鍵就中雷時停止顯示
			//LayTime laytime=new LayTime(StatusBon);
			gameBegin=true;
			UseTime.start();
			//laytime.start();
		}
	} 
	
	public void mouseEntered(MouseEvent e) {
	} 
	public void mouseReleased(MouseEvent e) {
		StatusBon.setIcon(StatusBobIcon[0]);
	} 
	public void mouseExited(MouseEvent e) {
	} 
	public void mousePressed(MouseEvent e) {

		StatusBon.setIcon(StatusBobIcon[2]);
	}
}//MyFrame 結束

//程序主控函數
public class MainExe{
	
	public static void main(String[] args){
	  
	  JFrame.setDefaultLookAndFeelDecorated(true);
	  
	  MyFrame MainFrame= new MyFrame();
	  MainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	  
	  //顯示窗口
	  MainFrame.pack();
	  MainFrame.setVisible(true);
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
9191精品国产综合久久久久久 | 国产婷婷色一区二区三区| 国产美女在线精品| 欧美a级一区二区| 免费观看日韩av| 麻豆国产91在线播放| 久久国产生活片100| 久久精品国产**网站演员| 久久精品久久99精品久久| 久久精品久久99精品久久| 国产在线看一区| 91福利在线观看| 亚洲国产精品视频| 香港成人在线视频| 日日欢夜夜爽一区| 激情综合网天天干| 粉嫩一区二区三区在线看 | 亚洲免费高清视频在线| 一区二区三区欧美| 日韩电影在线一区二区三区| 久久狠狠亚洲综合| 91蜜桃免费观看视频| 欧美高清性hdvideosex| 精品国产污网站| 亚洲丝袜制服诱惑| 日韩avvvv在线播放| 国产成人高清在线| 欧美日韩一区二区欧美激情| 欧美成人一区二区三区| 国产精品久久久久国产精品日日| 一区二区在线观看视频| 精品一区二区三区欧美| 91免费看视频| 精品伦理精品一区| 亚洲乱码中文字幕综合| 国产综合久久久久久鬼色 | 天天做天天摸天天爽国产一区| 免费在线观看日韩欧美| av不卡一区二区三区| 在线不卡的av| 亚洲免费毛片网站| 国产精品系列在线观看| 欧美亚洲综合久久| 中文字幕欧美国产| 久久99精品久久久久婷婷| 色婷婷综合久久久| 国产清纯美女被跳蛋高潮一区二区久久w | 日韩一区二区在线观看视频 | 午夜精品免费在线观看| 国产精品99久久久久久久vr| 欧美视频日韩视频在线观看| 国产精品理论在线观看| 国产综合久久久久久鬼色 | 成人爱爱电影网址| 精品久久久久久久久久久久久久久久久 | 日韩免费观看高清完整版| 亚洲欧美一区二区在线观看| 久久精品久久精品| 3d动漫精品啪啪1区2区免费| 一区二区三区精品| 欧美日韩一区久久| 亚洲蜜臀av乱码久久精品| 国产成人免费av在线| 久久嫩草精品久久久精品| 麻豆精品在线播放| 日韩一级黄色大片| 日韩av一区二区在线影视| 在线观看成人免费视频| 自拍偷拍国产精品| 91一区在线观看| 亚洲视频一区二区在线| 9人人澡人人爽人人精品| 亚洲国产成人午夜在线一区| 国产寡妇亲子伦一区二区| 精品久久久网站| 国产一区二区三区不卡在线观看| 欧美成人福利视频| 久久精品国产第一区二区三区| 欧美sm美女调教| 国产麻豆精品视频| 欧美激情一区二区三区全黄| 成人aaaa免费全部观看| 亚洲男帅同性gay1069| 91福利资源站| 青草国产精品久久久久久| 精品国产乱码久久久久久1区2区 | 99re这里都是精品| 亚洲私人影院在线观看| 欧美探花视频资源| 日韩电影在线免费观看| 精品电影一区二区三区 | 亚洲精品自拍动漫在线| 欧美日韩午夜精品| 美日韩黄色大片| 欧美激情资源网| 色欧美乱欧美15图片| 偷窥国产亚洲免费视频| 日韩欧美中文一区二区| 亚洲成在人线在线播放| 日韩一区二区三区四区五区六区| 日本中文一区二区三区| 国产网站一区二区三区| 91免费观看国产| 天天射综合影视| 久久精品在这里| 欧美日韩国产欧美日美国产精品| 蜜桃精品在线观看| 国产精品久久久久久久久晋中 | 777久久久精品| 国产高清亚洲一区| 午夜视频在线观看一区二区三区| 精品国产一区二区三区不卡| av在线不卡网| 六月丁香综合在线视频| 欧美国产欧美综合| 欧美午夜电影在线播放| 国产一区二区三区av电影| 亚洲精品中文字幕在线观看| 欧美日韩国产a| 国产成人精品一区二区三区四区| 亚洲香蕉伊在人在线观| 久久久精品黄色| 91精品国产综合久久久久久久久久| 国产91丝袜在线观看| 免费成人av资源网| 亚洲精品美腿丝袜| 国产精品色哟哟| 精品国免费一区二区三区| 欧美日精品一区视频| 99在线热播精品免费| 国产精品69久久久久水密桃| 日韩高清不卡一区二区| 亚洲成人免费在线观看| 亚洲特级片在线| 国产精品每日更新| 国产婷婷一区二区| xfplay精品久久| 欧美久久久一区| 在线国产电影不卡| 日本高清免费不卡视频| 97精品电影院| jvid福利写真一区二区三区| 大美女一区二区三区| 国产麻豆一精品一av一免费| 奇米888四色在线精品| 日韩在线a电影| 日本成人在线看| 天天综合色天天| 日韩高清在线电影| 秋霞午夜鲁丝一区二区老狼| 亚洲v日本v欧美v久久精品| 一区二区三区在线高清| 亚洲精品网站在线观看| 一区二区三区在线视频观看| 一区二区在线看| 婷婷开心久久网| 日韩和欧美的一区| 久久爱www久久做| 国产精品羞羞答答xxdd| 国产激情视频一区二区三区欧美 | 丝袜亚洲另类丝袜在线| 天堂蜜桃一区二区三区| 免费在线观看一区二区三区| 精品亚洲欧美一区| 国产传媒一区在线| 91视视频在线观看入口直接观看www | 美女www一区二区| 国产一区二区三区香蕉| 国产jizzjizz一区二区| 99国产精品久久久久久久久久久| 91欧美一区二区| 欧美丝袜自拍制服另类| 日韩美女视频在线| 国产日韩欧美一区二区三区乱码 | 国内精品伊人久久久久av影院| 国产乱国产乱300精品| 国v精品久久久网| 在线亚洲欧美专区二区| 91麻豆精品国产综合久久久久久| 精品三级av在线| 最好看的中文字幕久久| 免费久久99精品国产| 国产成人免费视频精品含羞草妖精| 一本到高清视频免费精品| 欧美一级精品大片| 国产精品视频九色porn| 日韩一区欧美二区| 成人av集中营| 91麻豆精品国产91| 中文字幕在线观看不卡视频| 亚洲成av人片| 成人h动漫精品一区二区| 911精品国产一区二区在线| 国产丝袜美腿一区二区三区| 一区二区三区.www| 大美女一区二区三区| 欧美一区二区三区影视| 综合亚洲深深色噜噜狠狠网站| 麻豆一区二区99久久久久| 91在线无精精品入口|