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

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

?? map.java

?? Java源代碼-主要用于瀏覽器聊天工具端口掃描
?? JAVA
字號:
package kyodai.map;

import java.awt.Point;
import java.util.Random;
import java.util.Vector;

/**
 * 生成連連看方塊的類
*/
public class Map{

	private int level;
	private int map[][];
	int array[];
	private int restBlock;
	private Vector vector;
	AnimateDelete animate;
	private boolean test;

	public Map(){
		level = 28;
		map = new int[10][17];
		array = new int[170];
		restBlock = level * 4;
		vector = new Vector();
		test = false;
		initMap();
	}

	public Map(int level){
		this.level = 28;
		map = new int[10][17];
		array = new int[170];
		restBlock = this.level * 4;
		vector = new Vector();
		test = false;
		this.level = level;
		restBlock = level * 4;
		initMap();
	}

	public void setTest(boolean test){
		this.test = test;
	}

	public void setLevel(int level){
		this.level = level;
		restBlock = level * 4;
		initMap();
	}

	private void initMap(){
		for(int i = 0; i < level; i++){
			array[i * 4] = i + 1;
			array[i * 4 + 1] = i + 1;
			array[i * 4 + 2] = i + 1;
			array[i * 4 + 3] = i + 1;
		}

		random(array);
		for(int i = 0; i < 10; i++){
			for(int j = 0; j < 17; j++)
				map[i][j] = array[i * 17 + j];

		}

	}

	private void random(int array[]){
		Random random = new Random();
		for(int i = array.length; i > 0; i--){
			int j = random.nextInt(i);
			int temp = array[j];
			array[j] = array[i - 1];
			array[i - 1] = temp;
		}

	}

	public void earse(Point a, Point b){
		map[a.x][a.y] = 0;
		map[b.x][b.y] = 0;
		restBlock -= 2;
	}

	public int getCount(){
		return restBlock <= 0 ? 0 : restBlock;
	}

	public void refresh(){
		int count = getCount();
		if(count <= 0)
			return;
		int temp[] = new int[count];
		count = 0;
		for(int row = 0; row < 10; row++){
			for(int col = 0; col < 17; col++)
				if(map[row][col] > 0){
					temp[count] = map[row][col];
					count++;
				}

		}

		random(temp);
		count = 0;
		for(int row = 0; row < 10; row++){
			for(int col = 0; col < 17; col++)
				if(map[row][col] > 0){
					map[row][col] = temp[count];
					count++;
				}

		}

	}

	private boolean horizon(Point a, Point b, boolean recorder){
		if(a.x == b.x && a.y == b.y)
			return false;
		int x_start = a.y <= b.y ? a.y : b.y;
		int x_end = a.y <= b.y ? b.y : a.y;
		for(int x = x_start + 1; x < x_end; x++)
			if(map[a.x][x] != 0)
				return false;

		if(!test && recorder)
			animate = new AnimateDelete(1, a, b);
		return true;
	}

	private boolean vertical(Point a, Point b, boolean recorder){
		if(a.x == b.x && a.y == b.y)
			return false;
		int y_start = a.x <= b.x ? a.x : b.x;
		int y_end = a.x <= b.x ? b.x : a.x;
		for(int y = y_start + 1; y < y_end; y++)
			if(map[y][a.y] != 0)
				return false;

		if(!test && recorder)
			animate = new AnimateDelete(0, a, b);
		return true;
	}

	private boolean oneCorner(Point a, Point b){
		Point c = new Point(a.x, b.y);
		Point d = new Point(b.x, a.y);
		if(map[c.x][c.y] == 0){
			boolean method1 = horizon(a, c, false) && vertical(b, c, false);
			if(method1){
				if(!test)
					animate = new AnimateDelete(1, a, c, b);
				return method1;
			}
		}
		if(map[d.x][d.y] == 0){
			boolean method2 = vertical(a, d, false) && horizon(b, d, false);
			if(method2 && !test)
				animate = new AnimateDelete(0, a, d, b);
			return method2;
		} 
		else{
			return false;
		}
	}

	private Vector scan(Point a, Point b){
		Vector v = new Vector();
		Point c = new Point(a.x, b.y);
		Point d = new Point(b.x, a.y);
		for(int y = a.y; y >= 0; y--)
			if(map[a.x][y] == 0 && map[b.x][y] == 0 && vertical(new Point(a.x, y), new Point(b.x, y), false))
				v.add(new Line(0, new Point(a.x, y), new Point(b.x, y)));

		for(int y = a.y; y < 17; y++)
			if(map[a.x][y] == 0 && map[b.x][y] == 0 && vertical(new Point(a.x, y), new Point(b.x, y), false))
				v.add(new Line(0, new Point(a.x, y), new Point(b.x, y)));

		for(int x = a.x; x >= 0; x--)
			if(map[x][a.y] == 0 && map[x][b.y] == 0 && horizon(new Point(x, a.y), new Point(x, b.y), false))
				v.add(new Line(1, new Point(x, a.y), new Point(x, b.y)));

		for(int x = a.x; x < 10; x++)
			if(map[x][a.y] == 0 && map[x][b.y] == 0 && horizon(new Point(x, a.y), new Point(x, b.y), false))
				v.add(new Line(1, new Point(x, a.y), new Point(x, b.y)));

		return v;
	}

	private boolean twoCorner(Point a, Point b){
		vector = scan(a, b);
		if(vector.isEmpty())
			return false;
		for(int index = 0; index < vector.size(); index++){
			Line line = (Line)vector.elementAt(index);
			if(line.direct == 1){
				if(vertical(a, line.a, false) && vertical(b, line.b, false)){
					if(!test)
						animate = new AnimateDelete(0, a, line.a, line.b, b);
					return true;
				}
			} 
			else if(horizon(a, line.a, false) && horizon(b, line.b, false)){
				if(!test)
					animate = new AnimateDelete(1, a, line.a, line.b, b);
				return true;
			}
		}

		return false;
	}

	public boolean test(Point a, Point b){
		if(map[a.x][a.y] != map[b.x][b.y])
			return false;
		if(a.x == b.x && horizon(a, b, true))
			return true;
		if(a.y == b.y && vertical(a, b, true))
			return true;
		if(oneCorner(a, b))
			return true;
		else
			return twoCorner(a, b);
	}

	public Line findNext(Point a){
		Point b = new Point();
		a = findFirst(a);
		if(a.equals(new Point(-1, -1)))
			return new Line(0, a, b);
		for(; !a.equals(new Point(-1, -1)); a = findFirst(a))
			for(b = findSecond(a, b); !b.equals(new Point(-1, -1)); b = findSecond(a, b))
				if(test(a, b))
					return new Line(1, a, b);


		return new Line(0, a, b);
	}

	private Point findFirst(Point a){
		int offset = 0;
		if(a != null)
			offset = a.x * 17 + a.y;
		if(offset < 0)
			offset = -1;
		for(int x = offset + 1; x < 170; x++){
			int row = Math.round(x / 17);
			int col = x - row * 17;
			if(map[row][col] != 0)
				return new Point(row, col);
		}

		return new Point(-1, -1);
	}

	private Point findSecond(Point a, Point b){
		if(a == null)
			return new Point(-1, -1);
		if(a.x + a.y < 0)
			return new Point(-1, -1);
		if(b == null)
			b = new Point(0, 0);
		int offset = Math.max(a.x * 17 + a.y, b.x * 17 + b.y);
		for(int x = offset + 1; x < 170; x++){
			int row = Math.round(x / 17);
			int col = x - row * 17;
			if(map[row][col] == map[a.x][a.y])
				return new Point(row, col);
		}

		return new Point(-1, -1);
	}

	public int[][] getMap(){
		return map;
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一级专区免费大片| 亚洲精选视频免费看| 一色桃子久久精品亚洲| 亚洲成人在线网站| 国产.欧美.日韩| 欧美性受极品xxxx喷水| 国产精品人妖ts系列视频| 蜜臀av性久久久久蜜臀av麻豆| 91免费观看视频在线| 国产欧美一区二区精品忘忧草| 奇米综合一区二区三区精品视频| 91麻豆免费视频| 国产精品成人网| 国产精品夜夜爽| 久久亚洲欧美国产精品乐播| 亚洲国产精品一区二区久久恐怖片| 成人福利视频在线看| 久久奇米777| 韩国欧美一区二区| 欧美第一区第二区| 全国精品久久少妇| 69久久夜色精品国产69蝌蚪网| 一区二区三区波多野结衣在线观看| 风间由美一区二区av101| 久久久一区二区三区捆绑**| 久久99久久久欧美国产| 欧美精品乱码久久久久久| 夜夜嗨av一区二区三区| 91视频一区二区三区| 专区另类欧美日韩| 99精品欧美一区二区三区小说 | 欧美电影免费观看完整版| 亚洲一级不卡视频| 欧美色综合天天久久综合精品| 一区二区三区四区在线| 在线免费亚洲电影| 亚洲国产wwwccc36天堂| 欧美男同性恋视频网站| 亚洲午夜激情网页| 在线播放欧美女士性生活| 三级欧美韩日大片在线看| 91精品久久久久久蜜臀| 麻豆精品一区二区三区| 久久久噜噜噜久久中文字幕色伊伊 | 在线视频欧美精品| 亚洲高清一区二区三区| 欧美精品在线观看播放| 麻豆精品在线播放| 久久久久久久久久久99999| 国产成人三级在线观看| 国产精品黄色在线观看| 欧美伊人精品成人久久综合97| 亚洲国产综合人成综合网站| 777亚洲妇女| 国产一区二区网址| 国产精品伦一区| 欧美性xxxxxxxx| 免费xxxx性欧美18vr| 国产视频亚洲色图| 91网站最新地址| 日韩不卡一区二区| 国产网站一区二区| 在线观看日韩av先锋影音电影院| 亚洲mv大片欧洲mv大片精品| 26uuu另类欧美| 91女人视频在线观看| 秋霞av亚洲一区二区三| 国产欧美精品日韩区二区麻豆天美| 91欧美一区二区| 久久精品国产亚洲一区二区三区| 国产精品免费免费| 欧美日韩成人综合| 成人性生交大合| 日韩激情视频在线观看| 国产精品不卡视频| 日韩网站在线看片你懂的| 成人黄色小视频| 欧美aaaaaa午夜精品| 成人免费小视频| 日韩精品专区在线影院观看 | 国产不卡在线一区| 婷婷综合另类小说色区| 国产欧美日韩一区二区三区在线观看| 欧美婷婷六月丁香综合色| 狠狠色丁香婷综合久久| 一个色妞综合视频在线观看| 国产欧美一区二区三区在线看蜜臀 | 色综合中文字幕国产 | 成人av第一页| 麻豆国产欧美日韩综合精品二区| 亚洲日本电影在线| 久久精品一区二区三区不卡| 欧美日韩国产精选| 99久久婷婷国产综合精品电影| 久久91精品国产91久久小草| 亚洲成人av资源| 成人免费在线播放视频| 欧美激情在线一区二区| 精品剧情在线观看| 制服丝袜日韩国产| 欧美综合一区二区| 91片黄在线观看| 成年人午夜久久久| 成人综合婷婷国产精品久久蜜臀| 蜜桃视频在线观看一区| 日本 国产 欧美色综合| 亚洲va欧美va国产va天堂影院| 成人免费在线视频观看| 国产精品不卡在线| 国产精品初高中害羞小美女文| 国产偷v国产偷v亚洲高清| 精品剧情在线观看| 精品国产乱码91久久久久久网站| 5月丁香婷婷综合| 欧美精品亚洲二区| 在线成人免费视频| 91精品一区二区三区久久久久久 | 欧美区一区二区三区| 欧美三级中文字幕在线观看| 91高清视频免费看| 欧美性猛片xxxx免费看久爱| 欧美中文字幕一区二区三区亚洲| 欧美伊人久久久久久午夜久久久久| 在线免费不卡电影| 欧美日本一区二区三区| 午夜视频一区二区| 国产成人福利片| 国产成人av电影免费在线观看| 激情小说欧美图片| 国产一区二区久久| 国产福利视频一区二区三区| 国产91精品一区二区麻豆亚洲| 波多野结衣中文一区| 色综合久久久久综合体桃花网| 91久久国产综合久久| 欧美日本免费一区二区三区| 日韩三级免费观看| 国产欧美一区二区三区沐欲| 亚洲婷婷国产精品电影人久久| 一区二区三区高清不卡| 蜜臀av性久久久久蜜臀aⅴ| 国产成人精品www牛牛影视| gogo大胆日本视频一区| 欧美日韩一区二区三区在线| 日韩亚洲欧美高清| 国产精品毛片久久久久久| 亚洲精品视频在线| 另类人妖一区二区av| 99精品视频在线观看| 欧美一区二区三区在线电影| 国产欧美日韩卡一| 亚洲国产一区二区在线播放| 精品夜夜嗨av一区二区三区| gogogo免费视频观看亚洲一| 欧美精选在线播放| 中文字幕乱码亚洲精品一区| 性久久久久久久久久久久| 国产美女精品一区二区三区| 91久久精品一区二区三| 精品福利av导航| 亚洲黄色免费电影| 国产精品亚洲专一区二区三区| 色婷婷狠狠综合| 国产日韩精品视频一区| 三级一区在线视频先锋| 99re热视频精品| 精品1区2区在线观看| 亚洲午夜免费视频| 成人久久视频在线观看| 日韩一区二区三区电影在线观看 | 日韩不卡一二三区| 99精品久久只有精品| 久久亚洲综合色| 日韩一区欧美二区| 在线看不卡av| 国产精品久久久久久久久快鸭| 日韩 欧美一区二区三区| 91亚洲精品久久久蜜桃| 久久午夜老司机| 天堂精品中文字幕在线| 一本色道久久加勒比精品| 日本一区二区三级电影在线观看| 视频一区欧美精品| 欧美午夜在线一二页| 亚洲欧美激情小说另类| 成熟亚洲日本毛茸茸凸凹| www精品美女久久久tv| 男女男精品网站| 欧美三级在线播放| 亚洲免费在线视频一区 二区| 成人免费毛片aaaaa**| 国产欧美精品一区二区三区四区| 极品少妇一区二区| 日韩欧美国产不卡| 午夜久久久久久久久久一区二区| 91欧美一区二区| 樱桃国产成人精品视频| 色综合天天性综合| 日韩一区欧美小说| 不卡视频在线观看|