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

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

?? gamecanvas.java

?? J2ME PokerMachine的游戲內容描繪與操作所用的類
?? 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一区二区三区免费野_久草精品视频
国产蜜臀97一区二区三区| 欧美性生活一区| 美女www一区二区| 日韩区在线观看| 日韩欧美激情在线| 日韩欧美综合在线| 9191成人精品久久| kk眼镜猥琐国模调教系列一区二区| 国产麻豆一精品一av一免费| 国产毛片精品一区| jlzzjlzz亚洲女人18| 色婷婷综合在线| 欧美日韩大陆一区二区| 91精品国产高清一区二区三区| 日韩一区二区三区三四区视频在线观看| 69堂成人精品免费视频| 精品国产一区二区精华| 最新成人av在线| 欧美a级一区二区| 成人av网站大全| 成人国产一区二区三区精品| 欧美亚洲图片小说| 日本一区二区电影| 日韩中文字幕区一区有砖一区| 精品一区二区三区久久| 99re这里都是精品| 久久久久综合网| 午夜精品久久久久久久久| 国产黑丝在线一区二区三区| 色一情一伦一子一伦一区| 精品对白一区国产伦| 亚洲影院在线观看| 99久久er热在这里只有精品15| 中文字幕视频一区二区三区久| 婷婷国产在线综合| 色综合天天综合网国产成人综合天| 精品人在线二区三区| 久久国产三级精品| 精品视频全国免费看| 中文字幕中文乱码欧美一区二区| 美国十次综合导航| 欧美一区二区在线视频| 午夜欧美大尺度福利影院在线看| 久久精品av麻豆的观看方式| 成人av综合在线| 最好看的中文字幕久久| 99re6这里只有精品视频在线观看| 国产亚洲一区二区三区| 亚洲第一主播视频| 色吧成人激情小说| 亚洲国产精品久久人人爱蜜臀| 欧美网站一区二区| 蜜臀久久99精品久久久久宅男| 91精品视频网| 国产成人在线网站| 国产精品久久久久aaaa| 色婷婷精品大视频在线蜜桃视频 | 欧美日韩电影一区| 久久国产精品区| 国产精品国产三级国产aⅴ入口 | 亚洲国产日韩一区二区| 欧美人妇做爰xxxⅹ性高电影| 日韩高清中文字幕一区| 欧美激情在线观看视频免费| 91国在线观看| 精品一区二区三区的国产在线播放 | 日韩欧美国产精品| 激情五月婷婷综合网| 亚洲视频精选在线| 精品国产污污免费网站入口| 在线视频综合导航| 国产成+人+日韩+欧美+亚洲| 亚洲精品成人a在线观看| 日韩一区二区三区观看| 91网站最新地址| 成人av网站在线观看| 捆绑变态av一区二区三区| 亚洲精品福利视频网站| 26uuuu精品一区二区| 欧美一级淫片007| 高潮精品一区videoshd| 韩国av一区二区| 激情都市一区二区| 秋霞电影网一区二区| 亚洲成人免费影院| 福利91精品一区二区三区| 久久99精品久久只有精品| 五月天一区二区| 日本午夜一本久久久综合| 日韩高清不卡一区| 日本中文字幕一区二区视频 | 91精品在线免费| 7777精品伊人久久久大香线蕉超级流畅 | 日韩免费看网站| 国产精品久久久久久久久快鸭 | 麻豆国产精品777777在线| 一本色道a无线码一区v| 懂色一区二区三区免费观看| 国产激情精品久久久第一区二区| 亚洲五月六月丁香激情| 日本伊人精品一区二区三区观看方式| 自拍偷拍欧美精品| 中文字幕日韩精品一区 | 国产日韩欧美制服另类| 亚洲高清在线视频| 国产高清成人在线| 欧美在线不卡视频| 国产精品午夜久久| 日本亚洲一区二区| 日本韩国一区二区| 中文字幕成人在线观看| 免费观看日韩av| 欧美美女视频在线观看| 亚洲欧美成人一区二区三区| 青青草97国产精品免费观看无弹窗版 | 国产suv精品一区二区883| 欧美一区二区三区爱爱| 亚洲成人自拍网| 欧美性欧美巨大黑白大战| 国产日产欧美一区| 国产精品1024| 欧美极品美女视频| 91浏览器打开| 亚洲婷婷综合色高清在线| 国内精品免费**视频| 欧美变态tickling挠脚心| 日韩成人免费电影| 日韩一区二区三区电影在线观看 | 欧美性三三影院| 亚洲成人动漫av| 日韩午夜激情视频| 久久99精品一区二区三区| 亚洲精品在线观看网站| 高清国产一区二区| 亚洲一区二区三区免费视频| 欧美高清www午色夜在线视频| 日精品一区二区| 久久久噜噜噜久久人人看| 国产成人免费在线| 一区二区三区在线免费观看| 制服视频三区第一页精品| 在线免费一区三区| 青草国产精品久久久久久| 国产精品久久久久久妇女6080| 日本高清不卡一区| 久久精品国产免费| 亚洲美女免费视频| 2023国产精品| 91国偷自产一区二区三区成为亚洲经典| 一区二区高清在线| 国产亚洲欧美色| 欧美一区二区三区婷婷月色| 国产**成人网毛片九色| 天堂成人免费av电影一区| 欧美激情中文字幕一区二区| 欧美色综合网站| 成人丝袜18视频在线观看| 蜜臀久久99精品久久久久宅男| 亚洲视频一区在线观看| 欧美成人女星排名| 欧美挠脚心视频网站| 欧美唯美清纯偷拍| 色综合视频在线观看| 国产99久久久国产精品潘金| 精品中文字幕一区二区| 亚洲国产精品天堂| 亚洲成人激情社区| 一区二区免费看| 亚洲狠狠爱一区二区三区| 亚洲精品一二三四区| 一区二区三区在线视频观看| 尤物av一区二区| 国产一区二区三区在线看麻豆| 青青草一区二区三区| 美女视频免费一区| 蜜臀久久99精品久久久久宅男 | 欧美三电影在线| 91精品国产综合久久久久久久久久| 在线国产亚洲欧美| 日韩欧美国产电影| 精品福利一区二区三区| 国产精品二三区| 亚洲专区一二三| 美腿丝袜亚洲三区| 国产精品白丝av| 在线国产电影不卡| 久久嫩草精品久久久精品| 亚洲三级小视频| 秋霞影院一区二区| 91最新地址在线播放| 在线综合视频播放| 中文字幕+乱码+中文字幕一区| 亚洲视频一区二区在线观看| 日韩精品乱码免费| caoporen国产精品视频| 欧美日韩久久久| 亚洲精品视频免费看| 懂色中文一区二区在线播放| 欧美日韩一二三区| 亚洲欧美视频在线观看视频|