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

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

?? game.java

?? 朋友開發的一個掃雷游戲,用SWT開發的,游戲有點慢,想了解的下載看看吧
?? JAVA
字號:
/*
 * Created on 2005-6-2
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
package bomb;

import java.util.Observable;
import java.util.List;
import java.util.LinkedList;;

/**
 * @author Administrator
 *
 * TODO To change the template for this generated type comment go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
public class Game extends Observable {
	
	public Game(){
		bricks = new Brick[MAX_ROWS][MAX_COLS];
		for (int i=0;i<MAX_ROWS;i++){
			for (int j=0;j<MAX_COLS;j++){
				bricks[i][j] = new Brick(i,j);
			}
		}
		queue = new LinkedList();
		this.reset(Game.PRIMARY);
	}
	
	public void begin(){
		this.state = PLAYING;
	}
	
	public void reset(int level){
		this.preLevel = this.level;
		this.level = level;
		queue.clear();
		if (level == Game.PRIMARY){
			rows = 9;
			cols = 8;
			totalBombs = 10;
		}else if (level == Game.MIDDLE){
			rows = 16;
			cols = 16;
			totalBombs = 40;
		}else if (level == Game.ADVANCE){
			rows = MAX_ROWS;
			cols = MAX_COLS;
			totalBombs = 99;
		}
		taggedBombs = 0;
		diggedBricks = 0;
		for (int i=0;i<rows;i++){
			for (int j=0;j<cols;j++){
				bricks[i][j].reset() ;
			}
		}
       //set the trap	
				
		for (int k=0;k<totalBombs;k++)
		{
			while(true){
				int x = (int)(Math.random() * rows);	
				int y = (int)(Math.random() * cols);
				if (!bricks[x][y].getTrap()){
					
					bricks[x][y].setTrap(true);
					break;
				}
			}
		
		}
		//set bombs atround 
		for (int i=0;i<rows;i++){
			for (int j=0;j<cols;j++){
				if (!bricks[i][j].getTrap()){
					int bombsAround = 0;
					if (i-1 >= 0){
						if (j-1 >=0){
							if (bricks[i-1][j-1].getTrap() ){
								bombsAround++;
							}
	
						}
						if (bricks[i-1][j].getTrap() ){
							bombsAround++;
						}

						if (j+1 < cols){
							if (bricks[i-1][j+1].getTrap() ){
								bombsAround++;
							}
						}
					}
					
					if (j-1 >=0){
						if (bricks[i][j-1].getTrap() ){
							bombsAround++;
						}
					}
					if (j+1 < cols){
						if (bricks[i][j+1].getTrap() ){
							bombsAround++;
						}
					}
					if (i+1 < rows){
						if (j-1 >=0){
							if (bricks[i+1][j-1].getTrap() ){
								bombsAround++;
							}
	
						}
						if (bricks[i+1][j].getTrap() ){
							bombsAround++;
						}

						if (j+1 < cols){
							if (bricks[i+1][j+1].getTrap() ){
								bombsAround++;
							}
						}

					}
					bricks[i][j].setBombs( bombsAround);
				}	
			}
		}
		state = READY;
		sendChanges();
		
	}
	
	public void digIt(int x,int y){
		bricks[x][y].dig();
	}
	
	public void dig(int x,int y){
		testBegin();
		if (bricks[x][y].getState() .equals(Brick.NORMAL) &&
			state.equals(PLAYING))
		{	
			bricks[x][y].dig();
			if (bricks[x][y].getTrap() ){
				state = LOST;
				for (int i = 0;i<this.rows;i++){
					for (int k=0;k<this.cols;k++){
						//System.out.println("1"); 
						if (bricks[i][k].getTrap()){
							//System.out.println()
							bricks[i][k].display();
						}
					}
				}
				sendChanges();
			}else {
				digAround(x,y);
				if (isSuccess()){
					state = WIN;
					sendChanges();
				}
			}
		}
	}
	
	private void digAround(int xx,int yy){
		queue.add(bricks[xx][yy]);
		while(!queue.isEmpty()){
			Brick brick = (Brick)queue.remove(0);
			brick.dig();
			diggedBricks ++;
			if (brick.getBombs() == 0){
				int x = brick.getX();
				int y = brick.getY();
				if (canbeDigged(x-1,y-1))queue.add(bricks[x-1][y-1]);
				if (canbeDigged(x-1,y))queue.add(bricks[x-1][y]);
				if (canbeDigged(x-1,y+1))queue.add(bricks[x-1][y+1]);
				if (canbeDigged(x,y+1))queue.add(bricks[x][y+1]);
				if (canbeDigged(x,y-1))queue.add(bricks[x][y-1]);
				if (canbeDigged(x+1,y-1))queue.add(bricks[x+1][y-1]);
				if (canbeDigged(x+1,y))queue.add(bricks[x+1][y]);
				if (canbeDigged(x+1,y+1))queue.add(bricks[x+1][y+1]);
	
			}
		}
	}
	
	private boolean isSuccess(){
		return (taggedBombs == totalBombs 
				&& diggedBricks == (rows * cols - totalBombs));
	}
	
	private  boolean canbeDigged(int x,int y){
		if (x>=0 && x<rows && y >= 0 && y < cols 
			&& bricks[x][y].getState().equals(Brick.NORMAL) ){
			return true;
		}else{
			return false;
		}
	}
	
	private void testBegin(){
		if (state.equals(READY)){
			state = PLAYING;
			sendChanges();
		}
	}
	
	public void tag(int x,int y){
		testBegin();
		if (bricks[x][y].getState().equals(Brick.NORMAL)
			&& state.equals(PLAYING)	){
			bricks[x][y].tagged();
			taggedBombs++;
			if (isSuccess()){
				state = WIN;
			}
			sendChanges();
		}
	}
	public void untag(int x,int y){
		testBegin();
		if (bricks[x][y].getState().equals(Brick.TAGGED)
				&& state.equals(PLAYING)	){
				taggedBombs--;
				bricks[x][y].untagged();
				if (isSuccess()){
					state = WIN;
					
				}
				sendChanges();
		}
	}
	
	private void sendChanges(){
		this.setChanged();
		this.notifyObservers();
	}
	
	public int getRows(){
		return this.rows;
	}
	public int getCols(){
		return this.cols;
	}
	
	public void addObserver(int x,int y,BrickButton button){
		bricks[x][y].addObserver(button);
	}
	
	public int getLevle(){
		return this.level;
	}
	
	public int getLeftBombs(){
		return this.totalBombs - this.taggedBombs;
	}
	
	public String getState(){
		return this.state;
	}
	
	public int getTotalBombs(){
		return this.totalBombs;
	}
	
	public void clearListener(int x,int y){
		bricks[x][y].deleteObservers();
	}
	
	public void clearAllListener(){
		for (int i=0;i<rows;i++){
			for (int k=0;k<cols;k++){
				clearListener(i,k);
			}
		}
	}
	
	private  final int MAX_ROWS = 16;
	private  final int MAX_COLS = 30;
	
	public final static String PLAYING = "PLAYING";
	public final static String WIN = "WIN";
	public final static String LOST = "LOST";
	public final static String PAUSE = "PAUSE";
	public final static String READY = "READY";
	
	public final static int PRIMARY = 1;
	public final static int ADVANCE = 3;
	public final static int MIDDLE = 2;
	
	private int cols = 8;
	private int rows = 10;
	private int totalBombs = 15;
	private int taggedBombs = 0;
	private int diggedBricks = 0;
	private String state =  READY;
	private List queue = null;
	
	private int level = PRIMARY;
	private int preLevel = PRIMARY;
	
	private Brick bricks[][] = null;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线播放国产精品二区一二区四区| 国产欧美精品日韩区二区麻豆天美| 午夜欧美电影在线观看| 欧美日韩国产大片| 日韩av中文在线观看| 日韩三级中文字幕| 韩国成人在线视频| 欧美国产精品一区二区三区| av在线综合网| 亚洲综合999| 这里是久久伊人| 韩国精品主播一区二区在线观看 | 18欧美亚洲精品| 91蜜桃免费观看视频| 91国产丝袜在线播放| 免费成人在线播放| 最新日韩av在线| 日韩精品专区在线影院观看| 春色校园综合激情亚洲| 国产在线精品一区二区 | 日韩一区二区三区四区| 久久se这里有精品| 欧美一区二区三区播放老司机| 久久精品国产成人一区二区三区| 久久久久久久国产精品影院| av爱爱亚洲一区| 亚洲成人一区二区| 精品国产sm最大网站| 成人av集中营| 日韩精品1区2区3区| 久久久国产一区二区三区四区小说 | 免费的国产精品| 国产日韩高清在线| 欧洲精品中文字幕| 久久 天天综合| 国产精品成人一区二区三区夜夜夜| 欧美在线视频全部完| 久久成人18免费观看| 国产精品毛片a∨一区二区三区| 欧美一a一片一级一片| 蜜桃精品视频在线观看| 国产精品久久久久婷婷| 666欧美在线视频| gogo大胆日本视频一区| 日本欧美一区二区在线观看| 国产精品乱人伦| 911国产精品| 成人国产免费视频| 日本亚洲最大的色成网站www| 国产精品美女一区二区三区| 欧美精品久久久久久久多人混战| 国产激情一区二区三区| 亚洲线精品一区二区三区八戒| 2022国产精品视频| 欧美吞精做爰啪啪高潮| 国产成人免费视频一区| 日韩二区三区在线观看| 亚洲欧美激情在线| 26uuu国产日韩综合| 欧美伦理电影网| av成人动漫在线观看| 国内一区二区视频| 天天爽夜夜爽夜夜爽精品视频| 一区二区中文字幕在线| 精品国产区一区| 欧美日韩卡一卡二| 9人人澡人人爽人人精品| 激情欧美日韩一区二区| 午夜精品久久一牛影视| 亚洲女厕所小便bbb| 久久精品一二三| 日韩小视频在线观看专区| 色视频一区二区| 成人午夜av影视| 国内精品久久久久影院薰衣草 | 91女神在线视频| 国产v日产∨综合v精品视频| 美女性感视频久久| 午夜在线成人av| 亚洲猫色日本管| 国产精品毛片a∨一区二区三区| 亚洲精品一区二区三区香蕉| 欧美一区二区私人影院日本| 精品视频1区2区| 在线观看一区日韩| 色又黄又爽网站www久久| 成人免费高清视频在线观看| 国产精品亚洲第一区在线暖暖韩国| 日本91福利区| 日韩国产成人精品| 无吗不卡中文字幕| 亚洲一区在线播放| 一区二区三区在线免费播放| 综合电影一区二区三区 | 亚洲卡通动漫在线| 国产精品女同一区二区三区| 国产午夜一区二区三区| 亚洲精品一区二区三区香蕉| 精品免费日韩av| 日韩免费观看2025年上映的电影| 欧美精品乱码久久久久久| 欧美日韩国产一级二级| 欧美天堂一区二区三区| 欧美三区在线观看| 欧美午夜在线观看| 欧美在线视频全部完| 欧美视频完全免费看| 欧美午夜影院一区| 欧美日本视频在线| 欧美美女bb生活片| 欧美一区二区三区色| 日韩一区二区三区免费观看| 91精品欧美福利在线观看| 91麻豆精品91久久久久同性| 欧美一二三区在线| 欧美xxxx老人做受| 久久先锋影音av| 国产精品全国免费观看高清| 国产精品看片你懂得 | 亚洲国产岛国毛片在线| 亚洲国产精品激情在线观看| 国产精品久久一级| 亚洲欧美色图小说| 亚洲午夜私人影院| 美女一区二区视频| 国产精品一线二线三线| 岛国精品在线播放| 91在线码无精品| 欧美三级电影在线观看| 91麻豆精品久久久久蜜臀| 日韩西西人体444www| 久久综合色播五月| 国产精品国产馆在线真实露脸 | 久久久精品综合| 中文字幕在线免费不卡| 一区二区三区日韩精品| 日韩电影在线一区二区三区| 国产一二精品视频| 99精品视频在线免费观看| 欧美性生活大片视频| 日韩一区二区三区电影| 久久久久久久综合| 自拍偷拍国产精品| 亚洲123区在线观看| 久久国产欧美日韩精品| 成人h动漫精品一区二| 在线观看一区二区精品视频| 日韩欧美在线网站| 中文字幕高清一区| 亚洲午夜影视影院在线观看| 韩国三级电影一区二区| 91香蕉视频污| 欧美一区二区在线播放| 欧美国产视频在线| 午夜视频在线观看一区二区 | 欧美一区二区三区在线视频| 久久久五月婷婷| 一区二区三区欧美在线观看| 国内久久精品视频| 一本大道综合伊人精品热热 | 精品在线观看免费| av电影一区二区| 欧美一区二区福利在线| 国产精品嫩草99a| 天天综合色天天综合| 成人激情免费网站| 91麻豆精品国产91久久久 | 视频一区二区三区入口| 国产精品99久久久久久久vr| 欧美性欧美巨大黑白大战| 精品国产免费久久| 一区二区三区四区乱视频| 裸体健美xxxx欧美裸体表演| 99热精品国产| 精品美女在线观看| 一区二区三区色| 国产精选一区二区三区| 欧美日韩在线播| 国产精品丝袜一区| 免费在线观看成人| 91麻豆国产精品久久| 欧美大片日本大片免费观看| 亚洲人一二三区| 国产一区二区按摩在线观看| 欧美美女直播网站| 国产精品家庭影院| 久久精品国产色蜜蜜麻豆| 欧美做爰猛烈大尺度电影无法无天| 久久天天做天天爱综合色| 亚洲成人综合网站| 99麻豆久久久国产精品免费优播| 欧美videofree性高清杂交| 夜夜嗨av一区二区三区四季av| 国产精品一区二区不卡| 69av一区二区三区| 亚洲宅男天堂在线观看无病毒| 粉嫩高潮美女一区二区三区| 日韩三级中文字幕| 天天综合网 天天综合色| 色激情天天射综合网|