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

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

?? pipe.java

?? J2ME編程的50個例子,適合掌上系統的編程
?? JAVA
字號:
package demo;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.game.TiledLayer;


public class Pipe {
	//水管種類數值,與tile編號對應
	public static final int PIPE_END			= 1;	//終點水管
	public static final int PIPE_START		= 2;	//起點水管
	public static final int PIPE_GOLD_H		= 3;	//金色的橫向水管
	public static final int PIPE_GOLD_V		= 4;	//金色的縱向水管
	public static final int PIPE_GOLD_C		= 5;	//金色的交叉水管
	public static final int PIPE_CURVE_U 		= 6;	//向上的彎形水管
	public static final int PIPE_CURVE_R 		= 7;	//向右的彎形水管
	public static final int PIPE_CURVE_D 		= 8;	//向下的彎形水管
	public static final int PIPE_CURVE_L 		= 9;	//向左的彎形水管
	public static final int PIPE_LINE_H		= 10;	//橫向直線水管
	public static final int PIPE_LINE_V		= 11;	//縱向直線水管
	
	private int a[][] = 								//存儲初始的水管
		{ { 5, 3, 3, 3, 3, 3, 3, 5 },
		  { 4, 6, 6, 0, 0, 9,10, 4 },
		  { 4, 9, 9, 0, 8, 9, 0, 4 },
		  { 4, 9,11,10, 8, 0, 0, 4 },
		  { 4, 0, 7, 0, 8, 9, 0, 4 },
		  { 4, 6, 8, 0, 0, 9,11, 4 },
		  { 4, 0, 7, 0, 8, 9, 0, 4 },
		  { 5, 3, 3, 3, 3, 3, 3, 5 } };
	private int m_nStartRow = 2;						//起點水管的行數,列數固定為0
	private int m_nEndRow = 5;							//終點水管的行數,列數固定為7
	private TiledLayer m_TLayer;						//水管Tile圖像
	private int m_nCurCol = 2;							//當前選擇的列
	private int m_nCurRow = 2;							//當前選擇的行
	
	//構造方法,參數scrWidth、scrHeight分別是屏幕的高和寬
	public Pipe(int scrWidth, int scrHeight){
		try{
			Image img = Image.createImage("/demo/pipe.png");
			m_TLayer = new TiledLayer( a[0].length, a.length, img, 15, 15 );
			int x = scrWidth / 2 - m_TLayer.getColumns() / 2 * 15;
			int y = scrHeight / 2 - m_TLayer.getRows() / 2 * 15;
			m_TLayer.setPosition(x, y);
			Reset();
		}
		catch (Exception ex){}
	}
	//重新設置水管
	public void Reset(){
		for( int col = 0; col < m_TLayer.getColumns(); col ++ ){
			for( int row = 0; row < m_TLayer.getRows(); row ++ ){
				m_TLayer.setCell(col, row, a[row][col] );
			}
		}
		//設置起點水管
		m_TLayer.setCell(0, m_nStartRow, 2);
		//設置終點水管
		m_TLayer.setCell(m_TLayer.getColumns()-1, m_nEndRow, 1);
	}
	//獲取當前選擇的列數
	public int getCurCol(){
		return m_nCurCol;
	}
	//獲取當前選擇的行數
	public int getCurRow(){
		return m_nCurRow;
	}
	//設置當前選擇的位置
	public void setCurSel( int col, int row ){
		m_nCurCol = col;
		m_nCurRow = row;
		if( m_nCurCol < 0 )
			m_nCurCol = 0;
		else if( m_nCurCol >= m_TLayer.getColumns() )
			m_nCurCol = m_TLayer.getColumns() - 1;
		if( m_nCurRow < 0 )
			m_nCurRow = 0;
		else if( m_nCurRow >= m_TLayer.getRows() )
			m_nCurRow = m_TLayer.getRows() - 1;
	}
	//顯示水管及當前選擇的位置
	//參數g對應手機屏幕
	public void Paint(Graphics g){
		//顯示水管
		m_TLayer.paint(g);
		//顯示當前選擇位置
		int x = m_TLayer.getX() + m_nCurCol * m_TLayer.getCellWidth();
		int y = m_TLayer.getY() + m_nCurRow * m_TLayer.getCellHeight();
		g.drawRect(x, y, m_TLayer.getCellWidth(), m_TLayer.getCellHeight());
	}
	//旋轉水管,參數col、row分別是被旋轉水管的列、行位置
	public void rotPipe( int col, int row ){
		
		switch( m_TLayer.getCell( col, row) ){
		case PIPE_CURVE_U:			//向上的彎形水管旋轉后變成向右的彎形水管
			m_TLayer.setCell(col, row, PIPE_CURVE_R);
			break;
		case PIPE_CURVE_R:			//向右的彎形水管旋轉后變成向下的彎形水管
			m_TLayer.setCell(col, row, PIPE_CURVE_D);
			break;
		case PIPE_CURVE_D:			//向下的彎形水管旋轉后變成向左的彎形水管
			m_TLayer.setCell(col, row, PIPE_CURVE_L);
			break;
		case PIPE_CURVE_L:			//向左的彎形水管旋轉后變成向上的彎形水管
			m_TLayer.setCell(col, row, PIPE_CURVE_U);
			break;
		case PIPE_LINE_H:			//橫向直線水管旋轉后變成縱向直線水管
			m_TLayer.setCell(col, row, PIPE_LINE_V);
			break;
		case PIPE_LINE_V:			//縱向直線水管旋轉后變成橫向直線水管
			m_TLayer.setCell(col, row, PIPE_LINE_H);
			break;
		}
	}
	//是否完成了水管的連接
	public boolean isFinish(){
		return isLink( 0, m_nStartRow, 0 );
	}
	//定義水管的進水方向,即連接方向
	public static final int IN_DIR_UP			= 0;	//從上方進水
	public static final int IN_DIR_RIGHT		= 1;	//從右方進水
	public static final int IN_DIR_DOWN		= 2;	//從下方進水
	public static final int IN_DIR_LEFT		= 3;	//從左方進水
	//從上方出水相當于下一個水管從下方進水
	public static final int OUT_DIR_UP 		= IN_DIR_DOWN;	
	//從右方出水相當于下一個水管從左方進水
	public static final int OUT_DIR_RIGHT		= IN_DIR_LEFT;
	//從下方出水相當于下一個水管從上方進水
	public static final int OUT_DIR_DOWN		= IN_DIR_UP;
	//從左方出水相當于下一個水管從右方進水
	public static final int OUT_DIR_LEFT		= IN_DIR_RIGHT;
	//判斷當前水管與周圍的水管是否可以連接
	//返回true表示可以,false表示不可以
	//參數col、row分別是當前水管的行列數,參數nDir是進水的方向
	private boolean isLink( int col, int row, int nDir ){
		/******第(1)步,判斷水流是否可以流入當前水管*****/
		if( col < 0 || col >= m_TLayer.getColumns() )
			return false;
		if( row < 0 || row >= m_TLayer.getRows() )
			return false;
		int type 	= m_TLayer.getCell(col, row);
		switch( type ){
		case PIPE_START:
			break;
		case PIPE_END:				//終點水管,只能從左側進水
			if( nDir != IN_DIR_LEFT )
				return false;
			break;
		case PIPE_CURVE_U:			//向上的水管,可以從上、右兩方進水或出水
			{
				switch(nDir){
				case IN_DIR_UP:
					return isLink(col + 1, row, OUT_DIR_RIGHT);
				case IN_DIR_RIGHT:
					return isLink(col, row - 1, OUT_DIR_UP);
				}
			}
			break;
		case PIPE_CURVE_R:			//向右的水管,可以從右、下兩方進水或出水
			{
				if( nDir != IN_DIR_RIGHT && nDir != IN_DIR_DOWN )
					return false;
			}
			break;
		case PIPE_CURVE_D:			//向下的水管,可以從下、左兩方進水或出水
			{
				if( nDir != IN_DIR_DOWN && nDir != IN_DIR_LEFT )
					return false;
			}
			break;
		case PIPE_CURVE_L:			//向左的水管,可以從左、上兩方進水或出水
			{
				if( nDir != IN_DIR_LEFT && nDir != IN_DIR_UP )
					return false;
			}
			break;
		case PIPE_LINE_H:			//橫向的水管,可以從左、右兩方進水或出水
			{
				if( nDir != IN_DIR_LEFT && nDir != IN_DIR_RIGHT )
					return false;
			}
			break;
		case PIPE_LINE_V:			//縱向的水管,可以從上、下兩方進水或出水
			{
				if( nDir != IN_DIR_UP && nDir != IN_DIR_DOWN )
					return false;
			}
			break;
		default:
			return false;
		}
		
		/******第(2)步,判斷當前水管是否為出口水管*****/
		if( type == PIPE_END )
			return true;
		
		/******第(3)步,處理下一個水管****************/
		switch( type ){
		case PIPE_START:			//起點水管,從右側出水
			return isLink(col + 1, row, OUT_DIR_RIGHT);
		case PIPE_CURVE_U:			//向上的水管,可以從上、右兩方進水或出水
			{
				switch(nDir){
				case IN_DIR_UP:
					return isLink(col + 1, row, OUT_DIR_RIGHT);
				case IN_DIR_RIGHT:
					return isLink(col, row - 1, OUT_DIR_UP);
				}
			}
			break;
		case PIPE_CURVE_R:			//向右的水管,可以從右、下兩方進水或出水
			{
				switch(nDir){
				case IN_DIR_RIGHT:
					return isLink(col, row + 1, OUT_DIR_DOWN);
				case IN_DIR_DOWN:
					return isLink(col + 1, row, OUT_DIR_RIGHT);
				}
			}
			break;
		case PIPE_CURVE_D:			//向下的水管,可以從下、左兩方進水或出水
			{
				switch(nDir){
				case IN_DIR_DOWN:
					return isLink(col - 1, row, OUT_DIR_LEFT);
				case IN_DIR_LEFT:
					return isLink(col, row + 1, OUT_DIR_DOWN);
				}
			}
			break;
		case PIPE_CURVE_L:			//向左的水管,可以從左、上兩方進水或出水
			{
				switch(nDir){
				case IN_DIR_LEFT:
					return isLink(col, row - 1, OUT_DIR_UP);
				case IN_DIR_UP:
					return isLink(col - 1, row, OUT_DIR_LEFT);
				}
			}
			break;
		case PIPE_LINE_H:			//橫向的水管,可以從左、右兩方進水或出水
			{
				switch(nDir){
				case IN_DIR_LEFT:
					return isLink(col + 1, row, OUT_DIR_RIGHT);
				case IN_DIR_RIGHT:
					return isLink(col - 1, row, OUT_DIR_LEFT);
				}
			}
			break;
		case PIPE_LINE_V:			//縱向的水管,可以從上、下兩方進水或出水
			{
				switch(nDir){
				case IN_DIR_UP:
					return isLink(col, row + 1, OUT_DIR_DOWN);
				case IN_DIR_DOWN:
					return isLink(col, row - 1, OUT_DIR_UP);
				}
			}
			break;
		}
		return false;
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色系网站成人免费| 99精品国产99久久久久久白柏 | 日韩二区三区四区| 日韩高清欧美激情| 亚洲精品亚洲人成人网在线播放| 中文字幕中文字幕一区| 国产精品国产三级国产aⅴ中文| 国产精品午夜久久| 国产精品美女久久久久久久网站| 欧美激情中文不卡| 中文字幕一区二区三区乱码在线| 日韩理论片网站| 亚洲国产日韩综合久久精品| 首页国产欧美日韩丝袜| 麻豆91精品视频| 黄网站免费久久| 波多野结衣亚洲一区| 91精品91久久久中77777| 91精品免费观看| 精品国产凹凸成av人导航| 国产亚洲成av人在线观看导航| 欧美激情一二三区| 亚洲欧美日韩一区| 免费高清视频精品| 成人黄页在线观看| 欧美系列日韩一区| 欧美精品一区二区三区久久久| 国产欧美日本一区二区三区| 亚洲男人的天堂在线观看| 日本在线不卡视频一二三区| 国产高清精品网站| 在线观看区一区二| 亚洲精品一区二区三区99| ●精品国产综合乱码久久久久| 日日噜噜夜夜狠狠视频欧美人| 激情综合色丁香一区二区| 91麻豆精品秘密| 欧美大肚乱孕交hd孕妇| 国产精品久久久久国产精品日日| 午夜久久福利影院| 成人美女视频在线看| 欧美一级淫片007| 亚洲女子a中天字幕| 精品一区二区三区视频| 色综合久久中文字幕| 欧美成人a视频| 亚洲mv在线观看| 97精品久久久午夜一区二区三区 | 亚洲777理论| 成人免费视频视频| 精品成人佐山爱一区二区| 亚洲男人天堂av网| 本田岬高潮一区二区三区| 日韩欧美在线123| 一区二区三区四区精品在线视频| 国产一区二区免费在线| 欧美日韩国产另类不卡| 国产精品女同互慰在线看| 久久99久久久久| 337p亚洲精品色噜噜狠狠| 一二三区精品视频| 色综合视频一区二区三区高清| 国产亚洲精品bt天堂精选| 美腿丝袜亚洲综合| 欧美喷潮久久久xxxxx| 亚洲一区二区三区四区在线免费观看 | 日本一区二区免费在线观看视频| 奇米色一区二区三区四区| 欧美性感一类影片在线播放| 亚洲综合色丁香婷婷六月图片| 91在线国产观看| 亚洲日本免费电影| 欧美欧美午夜aⅴ在线观看| 亚洲精品免费视频| 一本一道波多野结衣一区二区| 国产精品夫妻自拍| 91麻豆精品视频| 亚洲国产乱码最新视频| 欧美剧情电影在线观看完整版免费励志电影| 自拍偷拍欧美激情| 欧美性极品少妇| 免费在线观看成人| 精品国产一区二区国模嫣然| 国产原创一区二区三区| 中文字幕av免费专区久久| 粉嫩嫩av羞羞动漫久久久| 国产精品乱码一区二三区小蝌蚪| 粉嫩av一区二区三区粉嫩| 国产精品久久久久久久蜜臀| 91免费观看在线| 天天色天天操综合| 欧美成va人片在线观看| 国产成人精品亚洲日本在线桃色| 国产日本亚洲高清| 在线亚洲精品福利网址导航| 日本午夜精品一区二区三区电影| 精品国产一区二区三区不卡| 国产91精品欧美| 亚洲一二三四区| 欧美大胆一级视频| 97国产精品videossex| 亚洲午夜激情av| 久久综合国产精品| 色欧美片视频在线观看在线视频| 日韩—二三区免费观看av| 国产欧美日韩亚州综合| 欧美亚洲日本一区| 国产一区啦啦啦在线观看| 一区二区三区蜜桃| 久久影视一区二区| 在线观看av一区二区| 国产精品一二一区| 亚洲国产一区二区视频| 久久久久久电影| 欧美日韩视频在线观看一区二区三区| 久久精品噜噜噜成人av农村| 亚洲裸体xxx| 久久久久国产精品免费免费搜索| 91亚洲国产成人精品一区二三| 日本美女一区二区| 一区二区在线观看av| 国产亚洲精品资源在线26u| 欧美性猛片xxxx免费看久爱| 国产高清精品在线| 久久99九九99精品| 亚洲第一综合色| 中文字幕亚洲成人| 国产午夜亚洲精品午夜鲁丝片| 精品视频免费看| 色综合天天性综合| 成人免费高清在线观看| 精品亚洲aⅴ乱码一区二区三区| 亚洲一区二区三区在线看| 国产精品美女久久久久久久网站| 精品国产精品一区二区夜夜嗨| 欧美日韩在线一区二区| 91在线视频播放地址| 成+人+亚洲+综合天堂| 国内精品久久久久影院一蜜桃| 强制捆绑调教一区二区| 五月天丁香久久| 亚洲一区二区三区四区在线免费观看 | 国产精品午夜免费| 久久亚区不卡日本| 久久综合久久99| 久久综合九色综合97婷婷女人| 欧美一级爆毛片| 欧美电视剧在线看免费| 日韩丝袜情趣美女图片| 欧美一区二区三区免费| 91精品国产91综合久久蜜臀| 欧美精品久久久久久久久老牛影院| 欧美在线不卡一区| 欧美午夜精品一区二区三区| 欧美影院一区二区三区| 色激情天天射综合网| 欧美在线色视频| 7777精品久久久大香线蕉| 欧美丰满少妇xxxbbb| 3atv一区二区三区| 精品奇米国产一区二区三区| 精品黑人一区二区三区久久| 国产亚洲欧洲997久久综合| 国产日韩欧美麻豆| 亚洲视频网在线直播| 亚洲综合色区另类av| 日韩vs国产vs欧美| 韩国一区二区三区| 大胆欧美人体老妇| 色综合久久中文字幕| 91麻豆精品91久久久久同性| 2019国产精品| 亚洲视频综合在线| 奇米在线7777在线精品 | 亚洲欧美日韩在线| 亚洲成人黄色小说| 精品一区二区免费| 成人av在线影院| 欧美三级在线视频| 精品日韩成人av| 亚洲色图另类专区| 青青国产91久久久久久| 国产 日韩 欧美大片| 色婷婷精品久久二区二区蜜臀av| 欧美老年两性高潮| 国产精品欧美一级免费| 亚洲成在人线免费| 国产99久久久国产精品| 色94色欧美sute亚洲线路一ni| 欧美日韩视频专区在线播放| 国产视频亚洲色图| 日一区二区三区| 白白色 亚洲乱淫| 日韩女优毛片在线| 亚洲激情第一区| 国产成人精品亚洲午夜麻豆| 91精品国产综合久久精品麻豆| 亚洲国产高清不卡| 美女脱光内衣内裤视频久久影院| eeuss鲁片一区二区三区在线观看|