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

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

?? sliding block.txt

?? 5個用java編寫的小游戲源碼
?? TXT
?? 第 1 頁 / 共 3 頁
字號:
						tk = st.nextToken();
						char x = tk.charAt(0);
						int k;
						for (k=piecen;--k>=0;) {
							if (pieces[k].cid == x) break;
						}
						tk = st.nextToken();
						int r = (Integer.valueOf(tk)).intValue();
						tk = st.nextToken();
						int g = (Integer.valueOf(tk)).intValue();
						tk = st.nextToken();
						int b = (Integer.valueOf(tk)).intValue();
						if (k>=0) 
							pieces[k].setColor(r,g,b);
						continue nextline;
					}
					if (tk.equals("equiv") ) {
						tk = st.nextToken();
						for (int j=0;j<ay;++j) for (int i=0;i<ax;++i) {
							if ( tk.indexOf( targetBlocks[i][j].charAt(0) ) >=0 ) {
								targetBlocks[i][j] = tk;
							}
}					
						continue nextline;
					}
					if( tk.equals("next")){
						tk = st.nextToken();
						slide.nextfile = tk;
//						System.out.println("\tnext:" + tk);
						boardType="none";
					}
					if( tk.equals("step")){
						tk = st.nextToken();
						minStep = (Integer.valueOf(tk))
								.intValue();
						boardType="none";
					}
					if( tk.equals("initial") ) {
//						System.out.println("\tload initial");
						boardType = tk;
						str = new StringBuffer("");
						y = 0;
						continue nextline;
					}
					if( tk.equals("hint") ) {
//						System.out.println("\tload hint");
						boardType = tk;
						hintBlocks = new char[ax][ay];
						str = new StringBuffer("");
						y = 0;
						continue nextline;
					}
					if( tk.equals("target") ) {
//						System.out.println("\tload target");
						boardType = tk;
						str = new StringBuffer("");
						y = 0;
						continue nextline;
					}
					if( tk.equals("end") ) {
						break nextline;
					}

					if( ! boardType.equals("none") ) {
						++y;
						str.append( line );
						if( y >= ay ) {
						    setupData(str.toString());
						    boardType="none";
						}
					}
				} catch( NoSuchElementException e ) {
				    System.out.println(
					"No such element(s).(file error)");
				}
			}

			try {
				mTracker.waitForID(0); 
			} catch(InterruptedException e) {
				System.out.println("MediaTracker error");
			}

		} catch( IOException e ) {}
		System.out.println( "-- End of LoadData--" );
	}

	//----------------------------------------------------------------
	private	void setupData(String str) {
		int	idx = 0;
		if(boardType.equals("initial")) {
			for(int j=0;j<ay;++j) {
			    for(int i=0;i<ax;++i ) {
				char c = str.charAt(idx++);
				if(c=='.') continue;
				Block bk = new Block(i,j,this);
				blocks[i][j] = bk;
				if(c=='#') {
					blocks[i][j].outside = true;
					continue;
				}
				int k;
				for(k=piecen;--k>=0;){
					if(pieces[k].cid==c) break;
				}
				if(k<0){
					k = piecen;
					pieces[piecen++] = new Piece(this,c);
				}
				pieces[k].add(bk);
			    }
			}
		}
		if(boardType.equals("hint")) {
			for(int j=0;j<ay;++j) for(int i=0;i<ax;++i ) {
				hintBlocks[i][j] = str.charAt(idx++);
			}
		}
		if(boardType.equals("target")) {
			for(int j=0;j<ay;++j) for(int i=0;i<ax;++i ) {
				targetBlocks[i][j] = String.valueOf(str.charAt(idx++));
			}
		}
	}

}




//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
//	Block
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
class Block extends Rectangle {

	public	Board	board;
		Piece	piece;
		boolean	outside;
		boolean	linkN;
		boolean	linkS;
		boolean	linkW;
		boolean	linkE;
		Image		image;
		String	label;
		int		labelX;
		int		labelY;
		Color		color;
		int		hFactor;
		int		wFactor;

	//----------------------------------------------------------------
	Block(int cx,int cy,Board bd){
		board = bd;
		piece = null;
		x = cx; y = cy; width = height = 1;
		linkN = linkS = linkW = linkE = outside = false;
		image = null;
		label = null;
		color = bd.slide.piececolor;
		hFactor = wFactor = 1;
		// labelX and labelY are offsets from the center of the block
		labelX = -5;
		labelY = 5;
	}

	//----------------------------------------------------------------
	public void paint(Graphics g){
		paint(g,0,0);
	}
	public void paint(Graphics g, int offx, int offy){
		int unit = board.unit;
		int x1 = board.x+x*unit+offx;
		int y1 = board.y+y*unit+offy;
		int x2 = x1+width*unit-1;
		int y2 = y1+height*unit-1;
		Slide slide = board.slide;

		if (image != null) {
			boolean flg = g.drawImage(image, 
				x1, y1, width*unit*wFactor, height*unit*hFactor, 
				slide.shadowLight, board.slide);
			return;
		}

		if (piece.getHead().image == null) {
			g.setColor( piece.getHead().color );
			g.fillRect(x1,y1,width*unit,height*unit);

			if (this == piece.getHead()) {
				g.setColor(slide.shadowDark);
				Font pf = new java.awt.Font("Helvetica",0,20);
				g.setFont(pf);
				if (label == null) {
					char x[];
					x = new char[1];
					x[0] = piece.cid;
					g.drawChars(x, 0, 1, 
						x1+(width*board.unit*wFactor)/2 + labelX, 
						y1+(height*board.unit*hFactor)/2 + labelY);
				} else {
					if (label.charAt(0) != '*')
					g.drawString(label, 
						x1+(width*board.unit*wFactor)/2 + labelX, 
						y1+(height*board.unit*hFactor)/2 + labelY);
				}
			}

			g.setColor( slide.shadowDark );
			if(!linkE) {
				g.drawLine(x2-1,y1,x2-1,y2);
				g.drawLine(x2,y1,x2,y2);
			}
			if(!linkS) {
				g.drawLine(x1,y2-1,x2,y2-1);
				g.drawLine(x1,y2,x2,y2);
			}
			g.setColor( slide.shadowLight );
			if(!linkW) {
				g.drawLine(x1,y1,x1,y2);
				g.drawLine(x1+1,y1,x1+1,y2);
			}
			if(!linkN) {
				g.drawLine(x1,y1,x2,y1);
				g.drawLine(x1,y1+1,x2,y1+1);				
			}
		}
	}

	//----------------------------------------------------------------
	public void clear(Graphics g, int offx, int offy, int dx, int dy){
		int unit = board.unit;
		Slide slide = board.slide;
		g.setColor( slide.backcolor );

		int x1 = board.x+unit*x+offx;
		int w1 = unit;
		int y1 = board.y+unit*y+offy;
		int h1 = unit;
		int x2,w2,y2,h2,x3,w3,y3,h3;
		boolean bx,by;

		if(dx>=0){
			x2 = x1;	w2 = (dx<unit)? dx : unit;
			x3 = x1+w2;	w3 = unit-w2;
			bx = linkW;
		}else{
			x2 = x1+w1+dx;	w2 = (-dx<unit)? -dx : unit;
			x3 = x1;	w3 = unit-w2;
			bx = linkE;
		}
		if(dy>=0){
			y2 = y1;	h2 = (dy<unit)? dy : unit;
			by = linkN;
		}else{
			y2 = y1+h1+dy;	h2 = (-dy<unit)? -dy : unit;
			by = linkS;
		}
		if(bx) g.fillRect(x2,y2,w2,h2);
		else g.fillRect(x2,y1,w2,h1);
		if(!by) g.fillRect(x3,y2,w3,h2);
	}
}





//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
//	Piece
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

class Piece{
	final	int	maxBlocks = 36;
	public
		Board	board;
		char	cid;

	private	Block	blocks[];
		int	blockn;
		Point	delta;

	//----------------------------------------------------------------
	Piece( Board b, char c ) {
		board = b;
		blockn = 0;
		blocks = new Block[maxBlocks];
		cid = c;
		delta = new Point(0,0);
	}

	//----------------------------------------------------------------
	// getHead() returns the first block in the piece.

	public Block getHead() {
		if (blockn == 0)
			return null;
		return blocks[0];
	}

	//----------------------------------------------------------------
	// setLabel() sets the optional label of the first block.

	public void setLabel(String lab) {
		blocks[0].label = lab;
		blocks[0].labelX = blocks[0].labelX - 5*(lab.length()-1);
	}

	//----------------------------------------------------------------
	// setLabelOffset() sets the display offset for a label.

	public void setLabelOffset(int x, int y) {
		blocks[0].labelX = x;
		blocks[0].labelY = y;
	}

	//----------------------------------------------------------------
	// setColor() sets the optional RGB color of the first block.

	public void setColor(int r, int g, int b) {
		blocks[0].color = new Color(r,g,b);
	}

	//----------------------------------------------------------------
	public void add(Block bk){
		if(bk.piece!=null){
			System.out.println("Double definition");
			return;
		}
		blocks[blockn++] = bk;
		bk.piece = this;
	}

	//----------------------------------------------------------------
	public int moveX(int x,int y,int dx){
		if(dx == 0) return 0;
		int unit = board.unit;
		int offx = (x+unit*1024)/unit-1024;
		int offy = (y+unit*1024)/unit-1024;
		int adj = x-offx*unit;
		if(adj != 0){
			if(dx < -adj) dx = -adj;
			if(dx > unit-adj) dx = unit-adj;
			return dx;
		}else{
			offx = (dx>0)? offx+1 : offx-1;
			for(int i=blockn;--i>=0;){
				Block bk = blocks[i];
				Block bk2 = null;
				try{
				    bk2 = board.blocks[bk.x+offx][bk.y+offy];
				    if(bk2 != null) {
					if( bk2.outside || bk2.piece.cid != cid) {
								return 0;
					}
				    }
				    if(y%unit != 0){
					bk2 = board.blocks[bk.x+offx][bk.y+offy+1];
					if(bk2 != null && bk2.piece.cid != cid) return 0;
				    }
				} catch( Exception e ){return 0;}
			}
			if(dx > unit) dx = unit;
			if(dx <-unit) dx = -unit;
			return dx;
		}
	}


	//----------------------------------------------------------------
	public int moveY(int x,int y,int dy){
		if(dy == 0) return 0;
		int unit = board.unit;
		int offx = (x+unit*1024)/unit-1024;
		int offy = (y+unit*1024)/unit-1024;
		int adj = y-offy*unit;
		if(adj != 0){
			if(dy < -adj) dy = -adj;
			if(dy > unit-adj) dy = unit-adj;
			return dy;
		}else{
			offy = (dy>0)? offy+1 : offy-1;
			for(int i=blockn;--i>=0;){
				Block bk = blocks[i];
				Block bk2 = null;
				try{
				    bk2 = board.blocks[bk.x+offx][bk.y+offy];
				    if(bk2 != null) {
					if( bk2.outside || bk2.piece.cid != cid) {
								return 0;
					}
				    }
				    if(x%unit !=0){
					bk2 = board.blocks[bk.x+offx+1][bk.y+offy];
					if(bk2 != null && bk2.piece.cid != cid) return 0;
				    }
				} catch( Exception e ){return 0;}
			}
			if(dy > unit) dy = unit;
			if(dy <-unit) dy = -unit;
			return dy;
		}
	}

	//------------------------------------------------------------
	public void move( int dx, int dy ) {
		int unit = board.unit;
		int i;
		for(i=blockn;--i>=0;){
			Block bk = blocks[i];
			board.blocks[bk.x][bk.y] = null;
		}
		for(i=blockn;--i>=0;){
			Block bk = blocks[i];
			blocks[i].move(bk.x+dx,bk.y+dy);
			board.blocks[bk.x][bk.y] = blocks[i];

		}
	}


	//----------------------------------------------------------------
	public void resetAdjust(){
		delta.x = delta.y = 0;
	}

	//----------------------------------------------------------------
	public void update(Graphics g,int dx,int dy){
		if(delta.x == dx && delta.y == dy) return;
		for(int i=blockn;--i>=0;){
		    blocks[i].clear(g,delta.x,delta.y,dx-delta.x,dy-delta.y);
		}
		delta.x = dx;
		delta.y = dy;



		for(int i=blockn;--i>=0;){
			blocks[i].paint(g,dx,dy);
		}
	}

}

//================================================================
//			End of File
//================================================================

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品1区二区.| 不卡的av中国片| 欧美一区二区不卡视频| 亚洲综合色成人| 国产精品羞羞答答xxdd| 精品国产乱码久久久久久牛牛| 亚洲妇女屁股眼交7| 欧美性大战久久| 亚洲一区二区三区视频在线播放 | 成人激情小说网站| 欧美激情在线一区二区三区| 国产一区二区伦理| 久久久久九九视频| 成人自拍视频在线观看| 国产精品美女一区二区三区 | 久久亚洲精品国产精品紫薇| 国产剧情一区在线| 欧美精品一区二区三区蜜桃| 九九精品视频在线看| 欧美xfplay| 国产风韵犹存在线视精品| 日本一区二区成人在线| av中文字幕在线不卡| 亚洲日本电影在线| 欧美色精品天天在线观看视频| 亚洲高清视频中文字幕| 日韩一区二区视频| 国产一区二区三区四| 中文在线一区二区| 91蜜桃传媒精品久久久一区二区| 一区二区三区在线视频观看| 欧美日韩在线播| 人人精品人人爱| 久久婷婷国产综合精品青草| 岛国av在线一区| 樱花影视一区二区| 欧美精品高清视频| 黄页视频在线91| 国产精品国模大尺度视频| 一本色道a无线码一区v| 天天影视网天天综合色在线播放 | 国产日韩欧美精品电影三级在线| youjizz久久| 午夜精品在线视频一区| 精品国产乱码久久久久久免费| 成人激情免费视频| 一级日本不卡的影视| 欧美一区二区久久| 欧美一区在线视频| 国产91丝袜在线播放| 亚洲制服丝袜av| 精品国产123| 成+人+亚洲+综合天堂| 亚洲成人在线观看视频| 久久久亚洲精品一区二区三区 | 2017欧美狠狠色| 91一区二区在线观看| 亚洲二区在线视频| 国产网红主播福利一区二区| 色综合视频一区二区三区高清| 日产国产高清一区二区三区| 国产欧美一区二区精品仙草咪| 欧美在线观看一区| 国产乱码精品一区二区三| 亚洲一区二区三区视频在线播放| 欧美精品一区二区三区很污很色的 | 成人一二三区视频| 亚洲特级片在线| 日韩色视频在线观看| av亚洲精华国产精华精| 免费看黄色91| 亚洲人123区| 欧美精品一区视频| 欧洲国产伦久久久久久久| 精品一区二区免费视频| 一区二区日韩av| 久久精品视频在线免费观看| 欧美日韩国产高清一区二区| 成人一级片网址| 麻豆精品国产传媒mv男同| 亚洲精品国产一区二区精华液| 久久婷婷色综合| 欧美日本韩国一区| 成人午夜激情影院| 美女性感视频久久| 亚洲综合免费观看高清在线观看| 国产色91在线| 日韩情涩欧美日韩视频| 欧美在线影院一区二区| 成人黄色一级视频| 久久99久久久久| 亚洲一区二区三区四区在线免费观看 | 欧美日韩免费高清一区色橹橹| 国产成人免费xxxxxxxx| 琪琪久久久久日韩精品| 成人免费高清在线| 美女性感视频久久| 午夜精品在线看| 一区二区三区精品久久久| 欧美国产国产综合| 久久影视一区二区| 日韩一级视频免费观看在线| 欧美亚洲高清一区二区三区不卡| 97se亚洲国产综合自在线不卡| 国产一区二区0| 久久狠狠亚洲综合| 午夜精品一区二区三区电影天堂| 亚洲欧美日韩中文字幕一区二区三区| 国产色综合一区| 久久久午夜精品| 亚洲精品在线免费播放| 欧美老女人第四色| 欧美色倩网站大全免费| 91久久人澡人人添人人爽欧美| 成人av免费在线观看| 国产传媒欧美日韩成人| 黄色日韩网站视频| 精品一区二区三区影院在线午夜| 男男gaygay亚洲| 青青草国产成人99久久| 日本午夜精品一区二区三区电影 | 亚洲国产精品久久人人爱| 亚洲三级免费观看| 国产精品大尺度| 国产精品成人免费 | 久久久精品国产免费观看同学| 精品少妇一区二区| 欧美sm美女调教| 精品成人一区二区三区四区| 欧美成人艳星乳罩| 日韩一区二区在线看| 欧美成人官网二区| 精品福利一区二区三区| 欧美精品一区二区三区在线| 久久天天做天天爱综合色| 日本一区二区免费在线观看视频| 国产日产亚洲精品系列| 欧美国产日本韩| 亚洲视频狠狠干| 亚洲激情在线激情| 一区二区三区加勒比av| 亚洲妇熟xx妇色黄| 欧美a级一区二区| 久久99精品网久久| 国产乱人伦偷精品视频不卡| 高清视频一区二区| av亚洲精华国产精华精华| 色婷婷激情综合| 欧美男女性生活在线直播观看| 欧美一区二区在线视频| 精品成人免费观看| 中文字幕免费在线观看视频一区| 亚洲男人天堂一区| 亚洲h在线观看| 麻豆久久久久久久| 国产精品1区2区3区在线观看| 成人美女视频在线观看| 国产日韩亚洲欧美综合| 国产精品动漫网站| 亚洲mv在线观看| 国产美女主播视频一区| www.亚洲色图| 欧美日本韩国一区二区三区视频 | 一区二区高清视频在线观看| 日韩在线一区二区| 韩国一区二区在线观看| 成人99免费视频| 欧美日本一道本| 国产亚洲综合av| 亚洲免费视频成人| 日韩精品久久久久久| 国产麻豆午夜三级精品| 色综合久久综合网97色综合| 正在播放一区二区| 久久精品水蜜桃av综合天堂| 一个色在线综合| 九九**精品视频免费播放| 91在线国产福利| 日韩欧美激情一区| 国产精品色婷婷| 日韩有码一区二区三区| 国产大陆亚洲精品国产| 欧美日韩久久一区二区| 久久久99精品免费观看不卡| 亚洲一区二区三区中文字幕在线| 精品一二三四在线| 91极品视觉盛宴| 久久精品欧美一区二区三区麻豆| 亚洲一区二区三区小说| 国产传媒一区在线| 欧美另类变人与禽xxxxx| 日本一区二区三区四区在线视频| 亚洲bt欧美bt精品777| 成人中文字幕电影| 91精品免费在线| 亚洲免费av高清| 国产成人免费高清| 欧美裸体bbwbbwbbw| 国产精品久久久久久久久搜平片 | 亚洲高清在线视频|