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

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

?? gamecanvas.java

?? 一個手機JAVA游戲,MDIP2的運行環境,包括所有的資源和源代碼,卡片游戲
?? JAVA
?? 第 1 頁 / 共 3 頁
字號:
				if(drawSt2 != null) {
					g.drawString(drawSt2, drawX, drawY +stHeight, Graphics.TOP|Graphics.LEFT);
				}

				//蠃得賭金
				drawSt = "蠃得賭金:";
				g.drawString(drawSt, drawX, drawY+stHeight*2, Graphics.TOP|Graphics.LEFT);

				drawSt = String.valueOf(cashPrize);
				tmpDrawX = screenWidth -drawX -defFont.stringWidth(drawSt) -2;
				tmpDrawY = drawY + stHeight*2;
				g.drawString(drawSt, tmpDrawX, tmpDrawY, Graphics.TOP|Graphics.LEFT);

				switch(gameState) {
					case GAME_OVER://游戲結束狀態
						drawSt = "Game over";
					break;

					case BE_PLAYED_OUT://停止賭注狀態
						drawSt = "停止賭注!";
					break;

					default:
					return;
				}
				//設定粗體文本
				stWidth = defFont.stringWidth(drawSt);
				drawX = (screenWidth-stWidth) / 2;
				drawY = (screenHeight - (stHeight)) / 2;

				//描繪文本框
				g.setColor(0x00BBBBBB);
				g.fillRoundRect(drawX-2, drawY+2, stWidth+9, stHeight+2, 7, 7);
				g.setColor(0x00000000);
				g.fillRoundRect(drawX-6, drawY-2, stWidth+11, stHeight+4, 7, 7);
				g.setColor(0x00FFFFFF);
				g.fillRoundRect(drawX-4, drawY, stWidth+7, stHeight, 7, 7);

				//文本框消息
				g.setColor(0x00000000);
				g.drawString(drawSt, drawX, drawY, Graphics.TOP|Graphics.LEFT);
			break;
		}
	}

	/**
	 * 描繪撲克牌的方法
	 * @param	g	Graphics對象
	 */
	private void drawCards(Graphics g) {
		//將背景以綠色清除
		g.setColor(0x00009900);
		g.fillRect(0, 0, screenWidth, screenHeight);
		//描繪撲克牌
		int cardsLeng = cards.length;
		for(int i=0; i < cardsLeng; i++) {
			cards[i].doDraw(g);
		}
	}

	/** 指定的事件發生時被調用出來的方法 */
	public void commandAction(Command c, Displayable s) {
		if(c == startCmd) {//Start指令
			//初始化游戲以開始游戲
			doGameInit();
			doTurnInit();
			gameState = BET;
			//先將標題的指令刪除
			removeCommand(startCmd);
			removeCommand(exitCmd);
			//新增指令
			addCommand(quitCmd);
			addCommand(okCmd);
			repaint();
		}else if(c == exitCmd) {//Exit指令
			//調用出PokerMachine類的doExit方法,將MIDlet本身結束
			pokerMachine.doExit();

		}else if(c == okCmd) {//OK指令
			doOK();

		}else if(c == quitCmd) {//Quit指令
			//刪除指令
			removeCommand(okCmd);
			removeCommand(quitCmd);
			//顯示標題
			doTitle();
		}
	}

	/** 按下按鍵事件發生時所被調用的方法 */
	protected synchronized void keyPressed(int keyCode) {
		switch(gameState) {
			case BET:		//顯示下注畫面時
				if(getGameAction(keyCode) == LEFT) {
				//按下左按鍵時
					doLeft4Bet();
				}else {
					switch(keyCode) {
					//對下注的方法傳送被按下的數字按鍵的值
						case KEY_NUM0:
							doAddBet("0");
						break;
						case KEY_NUM1:
							doAddBet("1");
						break;
						case KEY_NUM2:
							doAddBet("2");
						break;
						case KEY_NUM3:
							doAddBet("3");
						break;
						case KEY_NUM4:
							doAddBet("4");
						break;
						case KEY_NUM5:
							doAddBet("5");
						break;
						case KEY_NUM6:
							doAddBet("6");
						break;
						case KEY_NUM7:
							doAddBet("7");
						break;
						case KEY_NUM8:
							doAddBet("8");
						break;
						case KEY_NUM9:
							doAddBet("9");
						break;
					}
				}
			break;

			case SELECT:	//顯示撲克牌選擇畫面時
				switch(keyCode) {
				//按下1~5的數字按鍵時,
				//調用選擇/解除選擇的方法
					case KEY_NUM1:
						doCardSelect(1);
					break;
					case KEY_NUM2:
						doCardSelect(2);
					break;
					case KEY_NUM3:
						doCardSelect(3);
					break;
					case KEY_NUM4:
						doCardSelect(4);
					break;
					case KEY_NUM5:
						doCardSelect(5);
					break;
				}
			break;
		}
	}

	/** OK按鈕被按下時所被調用的方法 */
	private void doOK() {
		//根據游戲狀態來改變處理
		switch(gameState) {
			case BET:			//顯示下注畫面時
				if(betCash > 0) {
				//被下注時顯示撲克牌分配畫面
					cash = cash4Bet;
					gameState = DEAL;
					doThreadStart();
				}
			break;

			case SELECT:		//顯示撲克牌選擇畫面時
				if(selectCardCount > 0) {
				//當撲克牌被選擇時就進行撲克牌的交換顯示
					gameState = RE_DEAL;
					doThreadStart();
				}else {
				//當沒有撲克牌被選擇時就進行結果顯示
					gameState = RESULT;
					doThreadStart();
				}
			break;

			case RESULT:		//顯示結果時
			//進行下注畫面顯示
				gameState = BET;
				doTurnInit();
				repaint();
			break;
		}
	}

	/** 在下注畫面中當左按鍵被按下時所調用的方法 */
	private void doLeft4Bet() {
		if(betCashSt.length() > 1) {
		//下注2位數以上的金額時
			//刪除第1位數
			betCashSt = betCashSt.substring(0, betCashSt.length() -1);
			try {
				betCash = Integer.parseInt(betCashSt);
				cash4Bet = cash - betCash;
			}catch(Exception e) {}
		}else {
		//下注1位數以下的金額時
			//將下注金額設為0
			betCashSt = "0";
			betCash = 0;
			cash4Bet = cash;
		}
		repaint();
	}

	/**
	 * 在下注畫面中當數字按鍵被按下時所調用的方法
	 * @param	numSt	對應數字按鍵的數字的字符串
	 */
	private void doAddBet(String numSt) {
		//在現在的下注金額中新增引數的字符串
		String tmpBetSt = betCashSt + numSt;
		try {
			//將下注金額變為數值
			int tmpBetCash = Integer.parseInt(tmpBetSt);
			if(cash >= tmpBetCash) {
			//下注金額比所持金額少時
				//承認該下注
				betCash = tmpBetCash;
				betCashSt = String.valueOf(betCash);
				cash4Bet = cash - betCash;
				repaint();
			}
		}catch(Exception e) {}
	}

	/**
	 * 在撲克牌選擇畫面中當數字按鍵被按下時所調用的方法
	 * @param	num		對應了數字按鍵的數值(1~5)
	 */
	private void doCardSelect(int num) {
		if(cards[num -1].getCardState() == Card.COVER_STATE) {
		//當以引數所指定的撲克牌為正面(一般)狀態的時候
			//設為選擇狀態
			cards[num -1].setCardState(Card.SELECT_STATE);
			selectCardCount++;
		}else {
		//選擇狀態的時候
			//設為正面(一般)狀態
			cards[num -1].setCardState(Card.COVER_STATE);
			selectCardCount--;
		}
		repaint();
	}

	/** 線程的運作部分 */
	public void run() {
		int cardsLeng = cards.length;;
		try {
			switch(gameState) {
				case DEAL:		//顯示撲克牌分配畫面
					for(int i=0; i < cardsLeng; i++) {
						cards[i].setCardState(Card.COVER_STATE);
						repaint();
						Thread.sleep(150);
					}
					//顯示選擇畫面
					gameState = SELECT;
					repaint();
				break;

				case RE_DEAL:	//顯示撲克牌的交換
					for(int i=0; i < cardsLeng; i++) {
						if(cards[i].getCardState() == Card.SELECT_STATE) {
							cards[i].setCardState(Card.BACK_STATE);
						}
					}
					repaint();
					Thread.sleep(100);
					//將翻面的撲克牌換成新的撲克牌
					setNewCards4Change(selectCardCount);
					//利用時差來顯示交換過的撲克牌
					for(int i=0; i < cardsLeng; i++) {
						if(cards[i].getCardState() == Card.BACK_STATE) {
							cards[i].setCardState(Card.COVER_STATE);
							repaint();
							Thread.sleep(150);
						}
					}
					//顯示結果
					gameState = RESULT;
					doThreadStart();
				break;

				case RESULT:	//顯示結果
					//檢查結果
					winning = doResultCheck();
					cashPrize = betCash * winning;
					if(winning > 0) {	//符合牌面時
						cash = cash + cashPrize;
					}
					repaint();

					if(cash < 1) {				//沒有所持金額時
						//先將指令刪除
						removeCommand(okCmd);
						removeCommand(quitCmd);
						Thread.sleep(1000);
						gameState = GAME_OVER;//游戲結束
						doThreadStart();
					}else if(cash >= MAX_CASH) {//所持金額為最高值以上時
						//將指令刪除
						removeCommand(okCmd);
						removeCommand(quitCmd);
						Thread.sleep(1000);
						gameState = BE_PLAYED_OUT;//停止賭注狀態
						doThreadStart();
					}
				break;

				case GAME_OVER:		//游戲結束
				case BE_PLAYED_OUT:	//停止賭注
					repaint();
					Thread.sleep(5000);
					//回到標題畫面
					doTitle();
				break;
			}
		}catch(Exception e) {
		}
	}

	/** 進行撲克牌分配時所調用的方法 */
	private void setNewCards() {
		int cardsLeng = cards.length;
		int[] tmpCardNos = new int[cardsLeng];
		for(int i=0; i < cardsLeng; i++) {
			//使用亂數來決定撲克牌
			tmpCardNos[i] = random.nextInt() % Card.CARD_TOTAL;//52枃亄僕儑乕僇乕2枃
			if(tmpCardNos[i] < 0) {
			//復數的時候
				tmpCardNos[i] = tmpCardNos[i] * (-1);
			}

			//檢查是否重復
			for(int j=0; j < i; j++) {
				if(tmpCardNos[i] == tmpCardNos[j]) {
				//若有相同的撲克牌存在時
					//再次抽牌
					i--;
					break;
				}
			}
		}

		//以int為基礎在Card數組cards中設定值
		for(int i=0; i < cardsLeng; i++) {
			cards[i].setUniqueNo(tmpCardNos[i]);
		}
	}

	/**
	 * 進行撲克牌交換時調用的方法
	 * @param	size	要交換的張數
	 */
	private void setNewCards4Change(int size) {
		int tmpCardNos[] = new int[size];
		boolean isOverlap = false;//重復標志

		int cardsLeng = cards.length;
		for(int i=0; i < size; i++) {
			//使用亂數來決定撲克牌
			tmpCardNos[i] = random.nextInt() % Card.CARD_TOTAL;//52張+2張鬼牌
			isOverlap = false;
			if(tmpCardNos[i] < 0) {
			//負數的時候
				tmpCardNos[i] = tmpCardNos[i] * (-1);
			}

			//與已經分配的撲克牌進行重復檢查
			for(int j=0; j < cardsLeng; j++) {
				if(tmpCardNos[i] == cards[j].getUniqueNo()) {
				//有相同撲克牌時
					//再次抽取新牌
					i--;
					isOverlap = true;
					break ;
				}
			}

			//與要交換的撲克牌進行重復檢查
			if(! isOverlap) {
				for(int j=0; j < i; j++) {
					if(tmpCardNos[i] == tmpCardNos[j]) {
					//有相同的撲克牌時

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产色91在线| 中文字幕av在线一区二区三区| 日本一区二区三区视频视频| av在线不卡观看免费观看| 国产精品美日韩| 色国产精品一区在线观看| 亚洲成人av电影| 日韩欧美一区二区在线视频| 一区二区在线观看免费视频播放| 欧美日韩中文一区| 国产高清精品网站| 亚洲国产一区视频| 欧美激情在线免费观看| 国产精品网站在线| 久久国产精品第一页| 久久久综合视频| 欧美色区777第一页| 欧美精三区欧美精三区| 97se亚洲国产综合在线| 国产精品一品二品| 亚洲国产乱码最新视频| 日韩av午夜在线观看| 国产精品欧美经典| 亚洲蜜臀av乱码久久精品蜜桃| 26uuu欧美| 欧美一区二区三区的| 欧美在线你懂的| 91视频免费看| 大白屁股一区二区视频| 蜜臀av国产精品久久久久| 亚洲国产日韩精品| 男人的天堂亚洲一区| 香蕉成人伊视频在线观看| 久久99精品视频| 日韩电影在线一区| 国产成人av电影在线| 国产寡妇亲子伦一区二区| 色综合 综合色| 成人妖精视频yjsp地址| 欧美三日本三级三级在线播放| 日韩一区二区视频在线观看| 亚洲欧洲色图综合| 国产精品女同互慰在线看| 亚洲成人1区2区| av网站免费线看精品| 欧美成人精品1314www| 精品久久久久久久久久久久久久久| 国产精品免费丝袜| 青青草一区二区三区| 日本韩国欧美一区二区三区| 国产香蕉久久精品综合网| 亚洲国产一区二区三区| 成人三级伦理片| xvideos.蜜桃一区二区| 香蕉影视欧美成人| 一本到一区二区三区| 久久久久久久久久电影| 全部av―极品视觉盛宴亚洲| 欧洲精品中文字幕| 中文字幕第一区第二区| 国产一区美女在线| 不卡区在线中文字幕| av中文字幕不卡| 精品99999| 国产精品理论片| 午夜久久久久久久久久一区二区| 另类的小说在线视频另类成人小视频在线 | 99精品视频免费在线观看| 欧美丝袜丝交足nylons图片| 色94色欧美sute亚洲13| 国产三级欧美三级| 国产麻豆成人精品| www久久精品| 久久成人免费日本黄色| 精品日韩在线一区| 国内成人免费视频| 91色porny在线视频| 久久久久一区二区三区四区| 韩国av一区二区三区| 国产午夜亚洲精品午夜鲁丝片 | 中文文精品字幕一区二区| 国产伦精品一区二区三区免费 | 欧美性受xxxx| 午夜精品123| 欧美一区二区成人| 国产在线麻豆精品观看| 久久精品一二三| 99久久久久久| 亚洲一区二区四区蜜桃| 精品亚洲国内自在自线福利| wwww国产精品欧美| 大陆成人av片| 一区二区三区精品在线| 国产在线精品一区二区三区不卡| 久久久另类综合| fc2成人免费人成在线观看播放| 国产精品免费免费| 欧美综合欧美视频| 久久精品国产亚洲高清剧情介绍| 精品福利av导航| 91蜜桃网址入口| 奇米888四色在线精品| 久久久久久综合| 91丨九色丨尤物| 免费在线观看视频一区| 欧美高清在线一区| 欧美性受xxxx| 国产精品88av| 丝袜a∨在线一区二区三区不卡| 99re这里只有精品6| 婷婷中文字幕综合| 中文文精品字幕一区二区| 欧美视频在线一区二区三区| 韩国三级中文字幕hd久久精品| 亚洲三级电影全部在线观看高清| 国产成人亚洲综合色影视| 悠悠色在线精品| 久久久91精品国产一区二区精品 | 亚洲一区二区三区激情| 欧美zozozo| 欧美性受xxxx黑人xyx性爽| 国产精品主播直播| 免费视频一区二区| 一级日本不卡的影视| 日本一区二区免费在线观看视频| 欧美久久久久久蜜桃| 91免费在线看| 丁香六月综合激情| 国产一本一道久久香蕉| 日欧美一区二区| 一区二区三区日韩精品视频| 欧美激情一区二区三区蜜桃视频| 日韩一级二级三级| 欧亚洲嫩模精品一区三区| 成人小视频免费观看| 国产露脸91国语对白| 日韩av电影天堂| 午夜精品久久久久久久久久久| 国产精品不卡一区| 中文字幕第一区二区| 久久久国际精品| 精品少妇一区二区三区| 日韩欧美国产三级| 欧美一区二区在线不卡| 欧美日韩一区二区三区高清| 91国产丝袜在线播放| 91在线精品秘密一区二区| bt欧美亚洲午夜电影天堂| 国产91在线观看丝袜| 丁香天五香天堂综合| 国产一区美女在线| 国产成人夜色高潮福利影视| 国产一区二区三区综合| 国产精品一区二区在线播放| 国产一区二区三区蝌蚪| 国产在线精品不卡| 国产成人精品亚洲777人妖| 国产不卡免费视频| 丁香亚洲综合激情啪啪综合| 成人精品视频一区二区三区尤物| 国产成人av一区二区三区在线| 国产白丝网站精品污在线入口| 国产成人av一区| 色综合欧美在线| 欧美日韩亚洲不卡| 欧美久久婷婷综合色| 精品欧美黑人一区二区三区| 久久久午夜电影| 国产精品不卡视频| 亚洲成人动漫在线观看| 蜜桃av一区二区| 国产精品一二三区在线| 91麻豆精品在线观看| 制服丝袜日韩国产| 99久久伊人久久99| 在线观看av一区| 精品欧美久久久| 最新中文字幕一区二区三区| 一区二区视频免费在线观看| 日本不卡的三区四区五区| 国产主播一区二区三区| 91视频国产观看| 日韩美女天天操| 国产精品久久99| 日韩国产精品久久久久久亚洲| 国产资源精品在线观看| 一本一本大道香蕉久在线精品| 欧美一级久久久| 亚洲欧洲三级电影| 开心九九激情九九欧美日韩精美视频电影 | 在线播放日韩导航| 日韩免费观看高清完整版| 亚洲国产aⅴ天堂久久| 91啪九色porn原创视频在线观看| 国产女人水真多18毛片18精品视频| 久久国产福利国产秒拍| 日韩免费成人网| 久久精品国产精品亚洲综合| 欧美www视频| 精品一区二区三区视频|