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

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

?? gamecanvas.java

?? 一個手機JAVA游戲,MDIP2的運行環境,包括所有的資源和源代碼,卡片游戲
?? JAVA
?? 第 1 頁 / 共 3 頁
字號:
/*
 * GameCanvas.java
 *
 * Copyright 2001 SkyArts. All Rights Reserved.
 */
import javax.microedition.lcdui.*;
import java.util.*;

/**
 * PokerMachine的游戲內容描繪與操作所用的類
 *
 * @author  Hideki Yonekawa
 * @version 1.0
 */
class GameCanvas extends Canvas implements Runnable, CommandListener {
	/** 用來儲存橫向長度的變量 */
	private int					screenWidth;
	/** 用來儲存縱向長度的變量 */
	private int					screenHeight;

	/** 儲存了PokerMachine對象的變量 */
	private PokerMachine		pokerMachine;

	/** Start指令變量 */
	private Command				startCmd		= new Command("Start", Command.SCREEN, 1);
	/** Exit指令變量 */
	private Command				exitCmd			= new Command("Exit", Command.SCREEN, 1);
	/** OK指令變量 */
	private Command				okCmd			= new Command("OK", Command.SCREEN, 1);
	/** Quit指令變量 */
	private Command				quitCmd			= new Command("Quit", Command.SCREEN, 1);

	/** 儲存了默認字體的變量 */
	private Font				defFont				= Font.getDefaultFont();

	/** 代表標題顯示狀態的常量 */
	private static final short	TITLE			= 0;
	/** 代表下注畫面顯示狀態的常量 */
	private static final short	BET			= 1;
	/** 代表撲克牌分配畫面顯示狀態的常量 */
	private static final short	DEAL			= 2;
	/** 代表撲克牌選擇顯示狀態的常量 */
	private static final short	SELECT			= 3;
	/** 代表撲克牌的交換畫面顯示狀態的常量 */
	private static final short	RE_DEAL			= 4;
	/** 代表結果顯示畫面之顯示狀態的常量 */
	private static final short	RESULT			= 5;
	/** 代表游戲結束狀態的常量 */
	private static final short	GAME_OVER		= 9;
	/** 代表停止賭注狀態的常量 */
	private static final short	BE_PLAYED_OUT		= 99;
	/** 代表儲存現在顯示狀態的變量 */
	private short		gameState;

	/** Royal Straight Flush的賠率常量 */
	private static final short	Royal_Flush_Rate	= 400;
	/** Five Card的賠率常量 */
	private static final short	Five_of_a_Kind_Rate	= 100;
	/** Straight Flash的賠率常量 */
	private static final short	Straight_Flush_Rate	= 50;
	/** Four Card的賠率常量 */
	private static final short	Four_of_a_Kind_Rate	= 25;
	/** Full House的賠率常量 */
	private static final short	Full_House_Rate		= 8;
	/** Flush的賠率常量 */
	private static final short	Flush_Rate		= 5;
	/** Straight的賠率常量 */
	private static final short	Straight_Rate		= 4;
	/** Three Card的賠率常量 */
	private static final short	Three_of_a_Kind_Rate    = 3;
	/** Two Pair的賠率常量 */
	private static final short	Two_Pair_Rate		= 2;
	/** One Pair的賠率常量 */
	private static final short	Jacks_or_Better_Rate    = 1;
	/** 撲克牌沒有符合任何牌面時的賠率常量 */
	private static final short	NOTHING			= -1;

	/** 用來在準備撲克牌時使用的Random對象 */
	private Random			random			= new Random();

	/** 儲存了默認所持金額的常量 */
	private static final int	DEFAULT_CASH		= 100;

	/** 儲存了停止賭注金額的常量 */
	private static final int	MAX_CASH		= 9999999;

	/** 儲存有現在所持金額的變量 */
	private int				cash;

	/** 在下注的時候暫時儲存所持金額的變量 */
	private int				cash4Bet;

	/** 儲存下注的變量 */
	private int				betCash;

	/** 儲存下注的字符串的變量,使用在改變下注的時候 */
	private String				betCashSt;

	/** 儲存賭金的變量 */
	private int				cashPrize;

	/** 儲存了默認所持金額的常量 */
	private short				winning;

	/** 將游戲中所使用的值初始化的方法 */
	private Card[]				cards;

	/** 儲存選取牌張數的變量 */
	private int				selectCardCount;

	/** 用來儲存使用在標題畫面中的圖像的變量 */
	private Image				titleImg;

	/**
	 * 構造函數
	 * @param pokerMachine	PokerMachine對象
	 */
	GameCanvas(PokerMachine	pokerMachine) {
		this.pokerMachine = pokerMachine;

		//取得畫面的可描繪范圍
		screenWidth = getWidth();
		screenHeight = getHeight();

		//登錄指令監聽
		setCommandListener(this);

		//取得標題圖像
		try {
			titleImg = Image.createImage("/title.png");

		}catch(Exception e) {}

		//制作撲克牌
		cards = new Card[5];
		//先傳遞要描繪的X,Y坐標
		int tmpDrawX = (screenWidth - Card.WIDTH * cards.length) /2;
		int tmpDrawY = screenHeight - Card.HEIGHT -5;
		for(int i=0; i < cards.length; i++) {
			cards[i] = new Card();
			cards[i].setDrawX(tmpDrawX);
			cards[i].setDrawY(tmpDrawY);

			tmpDrawX = tmpDrawX + Card.WIDTH;
		}

		//將游戲的狀態顯示在標題
		doTitle();
	}

	/** 將游戲中所使用的值初始化的方法 */
	private void doGameInit() {
		//將所持金額變為默認值
		cash = DEFAULT_CASH;
	}

	/** 在每一回合結束后進行值的初始化的方法 */
	private void doTurnInit() {
		//將牌蓋起來
		for(int i=0; i < cards.length; i++) {
			cards[i].setCardState(Card.BACK_STATE);
		}
		//抽取新的牌
		setNewCards();

		betCash = 0;
		cashPrize = 0;
		selectCardCount = 0;
		betCashSt = "0";
		cash4Bet = cash;
	}

	/** 進行標題顯示的方法 */
	private void doTitle() {
		//將游戲狀態變為顯示標題
		gameState = TITLE;

		//以防萬一先將游戲中的指令刪除
		removeCommand(okCmd);
		removeCommand(quitCmd);

		//顯示標題畫面
		repaint();
		//新增指令
		addCommand(exitCmd);
		addCommand(startCmd);
	}

	/** 啟動描繪線程的方法 */
	private void doThreadStart() {
		new Thread(this).start();
	}

	/**
	 * 進行描繪的方法,通常不會從類本身調用
	 * @param	g	Graphics對象
	 */
	protected void paint(Graphics g) {
		//設定字體
		g.setFont(defFont);

		String drawSt;
		String drawSt2 = null;
		int drawX, drawY, stWidth, drawHeight, tmpDrawX, tmpDrawY;

		int stHeight = defFont.getHeight();

		//根據游戲的狀態來改變描繪內容
		switch(gameState) {
			case TITLE:		//顯示標題
				//以綠色清除背景
				g.setColor(0x00FFFFFF);
				g.fillRect(0, 0, screenWidth, screenHeight);

				//描繪標題圖像
				drawX = (screenWidth - titleImg.getWidth()) /2;
				g.drawImage(titleImg, drawX, 0, Graphics.TOP|Graphics.LEFT);

				//顯示著作權
				g.setColor(0x00000000);
				drawSt = "Copyright 2001";
				drawX = (screenWidth - defFont.stringWidth(drawSt)) / 2;
				drawY = getHeight() - stHeight *2;
				g.drawString(drawSt, drawX, drawY, Graphics.TOP|Graphics.LEFT);

				drawSt = "SkyArts.com";
				drawX = (screenWidth - defFont.stringWidth(drawSt)) / 2;
				drawY = drawY + stHeight;
				g.drawString(drawSt, drawX, drawY, Graphics.TOP|Graphics.LEFT);
			break;

			case BET:		//顯示下注畫面
				//以綠色清除背景
				g.setColor(0x00009900);
				g.fillRect(0, 0, screenWidth, screenHeight);

				drawHeight = stHeight * 4 +8;
				drawX = 0;
				drawY = 0;
				//底色
				g.setColor(0x00000000);
				g.fillRoundRect(drawX, drawY, screenWidth, drawHeight, 7, 7);
				g.setColor(0x00FFFFFF);
				g.fillRoundRect(drawX+2, drawY+2, screenWidth-4, drawHeight-4, 7, 7);
				//第1列
				drawX = 4;
				drawY = 3;
				drawSt = "請選擇";
				g.setColor(0x00000000);
				//第2列
				g.drawString(drawSt, drawX, drawY, Graphics.TOP|Graphics.LEFT);
				drawSt = "下注";
				g.drawString(drawSt, drawX, drawY +stHeight, Graphics.TOP|Graphics.LEFT);


				//Cash
				drawSt = "所持金額:";
				g.drawString(drawSt, drawX, drawY+stHeight*2, Graphics.TOP|Graphics.LEFT);

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

				//Bet
				drawSt = "下注金額:";
				g.drawString(drawSt, drawX, drawY+defFont.getHeight()*3, Graphics.TOP|Graphics.LEFT);
				drawSt = betCashSt;
				tmpDrawX = screenWidth -drawX -defFont.stringWidth(drawSt) -2;
				tmpDrawY = drawY + stHeight*3;
				g.drawString(drawSt, tmpDrawX, tmpDrawY, Graphics.TOP|Graphics.LEFT);

				g.setStrokeStyle(Graphics.DOTTED);
				tmpDrawY = tmpDrawY + defFont.getBaselinePosition() +1;
				g.drawLine(tmpDrawX, tmpDrawY, tmpDrawX + defFont.stringWidth(drawSt),tmpDrawY);

				g.setStrokeStyle(Graphics.SOLID);
			break;

			case DEAL:	//顯示撲克牌分配畫面
			case RE_DEAL:	//顯示撲克牌的交換
				drawCards(g);
			break;

			case SELECT:	//顯示撲克牌選擇畫面
				drawCards(g);
				drawHeight = stHeight * 2 +6;
				drawX = 0;
				drawY = 0;
				//底色
				g.setColor(0x00000000);
				g.fillRoundRect(drawX, drawY, screenWidth, drawHeight, 7, 7);
				g.setColor(0x00FFFFFF);
				g.fillRoundRect(drawX+2, drawY+2, screenWidth-4, drawHeight-4, 7, 7);
				//第1列
				drawX = 4;
				drawY = 3;
				drawSt = "請選擇";
				g.setColor(0x00000000);
				//第2列
				g.drawString(drawSt, drawX, drawY, Graphics.TOP|Graphics.LEFT);
				drawSt = "要交換的撲克牌";
				g.drawString(drawSt, drawX, drawY +stHeight, Graphics.TOP|Graphics.LEFT);

				//在撲克牌上
				g.setColor(0x00FFFFFF);
				drawY = screenHeight - Card.HEIGHT -7 -stHeight;
				tmpDrawX = (screenWidth - Card.WIDTH * cards.length) /2;
				int cardsLeng = cards.length;
				for(int i=0; i < cardsLeng; i++) {
					drawSt = String.valueOf(i +1);
					drawX = tmpDrawX + (Card.WIDTH - defFont.stringWidth(drawSt)) / 2;
					g.drawString(drawSt, drawX, drawY, Graphics.TOP|Graphics.LEFT);
					tmpDrawX = tmpDrawX + Card.WIDTH;
				}
			break;

			case RESULT:		//顯示結果
			case GAME_OVER:		//游戲結束狀態
			case BE_PLAYED_OUT:	//停止賭注狀態
				drawCards(g);

				drawHeight = stHeight * 3 +6;
				drawX = 0;
				drawY = 0;
				//底色
				g.setColor(0x00000000);
				g.fillRoundRect(drawX, drawY, screenWidth, drawHeight, 7, 7);
				g.setColor(0x00FFFFFF);
				g.fillRoundRect(drawX+2, drawY+2, screenWidth-4, drawHeight-4, 7, 7);
				switch(winning) {		//根據牌面來改變消息
					case Royal_Flush_Rate:
						drawSt = "Royal Straight";
						drawSt2 = "Flush!!!!!!!!";
					break;

					case Five_of_a_Kind_Rate:
						drawSt = "Five Card!";
						drawSt2 = "Excellent!!";
					break;

					case Straight_Flush_Rate:
						drawSt = "Straight Flush!";
						drawSt2 = "Great!!";
					break;

					case Four_of_a_Kind_Rate:
						drawSt = "Four Card!";
						drawSt2 = "Great job!!";
					break;

					case Full_House_Rate:
						drawSt = "Full House!";
						drawSt2 = "Nice hand!!";
					break;

					case Flush_Rate:
						drawSt = "Flush!";
						drawSt2 = "Wow!!";
					break;

					case Straight_Rate:
						drawSt = "Straight!";
						drawSt2 = "Wonderful!!";
					break;

					case Three_of_a_Kind_Rate:
						drawSt = "Three Card!";
						drawSt2 = "Oh happy day!!";
					break;

					case Two_Pair_Rate:
						drawSt = "Two Pair!";
						drawSt2 = "Lucky you!!";
					break;

					case Jacks_or_Better_Rate:
						drawSt = "One Pair!";
						drawSt2 = "You are good!!";
					break;

					default:
						drawSt = "Nothing!";
					break;

				}
				g.setColor(0x00000000);
				//第1列
				drawX = 4;
				drawY = 3;
				g.drawString(drawSt, drawX, drawY, Graphics.TOP|Graphics.LEFT);
				//第2列

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99久久精品一区| 国产福利精品一区二区| 亚洲国产美女搞黄色| 丝袜诱惑制服诱惑色一区在线观看| 亚洲电影你懂得| 精品一区二区三区的国产在线播放| 国产精品一二三区| 日本韩国欧美在线| 91极品美女在线| 欧美mv和日韩mv国产网站| 中文子幕无线码一区tr| 亚洲bt欧美bt精品777| 激情五月播播久久久精品| 99久久久久久| 欧美一区午夜视频在线观看| 亚洲国产成人一区二区三区| 午夜精品一区在线观看| 国产高清无密码一区二区三区| 色婷婷综合久久久中文字幕| 欧美电影在线免费观看| 国产精品欧美综合在线| 免费av成人在线| 94-欧美-setu| 日韩午夜精品电影| 亚洲精品国产a| 韩国一区二区三区| 欧美日韩一区久久| 日韩一级在线观看| 亚洲精品视频在线| 岛国精品在线播放| 在线观看日韩av先锋影音电影院| 欧美成人a∨高清免费观看| 亚洲国产精品久久久男人的天堂| 免费久久精品视频| 欧美在线视频你懂得| 欧美电影一区二区| 亚洲丶国产丶欧美一区二区三区| 国产精品正在播放| 欧美成人vps| 全国精品久久少妇| 日韩免费一区二区三区在线播放| 亚洲与欧洲av电影| 在线观看不卡一区| 亚洲欧美影音先锋| 成人激情动漫在线观看| 欧美老年两性高潮| 首页综合国产亚洲丝袜| 欧美在线啊v一区| 亚洲综合免费观看高清完整版在线| 成人a免费在线看| 国产日韩欧美一区二区三区乱码| 久久 天天综合| 日韩你懂的在线播放| 久久国产综合精品| 日韩精品综合一本久道在线视频| 免费欧美高清视频| 日韩一区二区三区视频在线| 日一区二区三区| 欧美精品日韩综合在线| 偷拍日韩校园综合在线| 欧美久久久久中文字幕| 亚洲午夜免费福利视频| 91精品国产色综合久久ai换脸| 久久99精品久久久久婷婷| 日韩小视频在线观看专区| 亚洲国产另类精品专区| 欧美人妖巨大在线| 日本一道高清亚洲日美韩| 日韩欧美视频在线| 国产真实精品久久二三区| 国产日韩三级在线| 菠萝蜜视频在线观看一区| 国产精品久久夜| 一本一本大道香蕉久在线精品 | 日韩av电影免费观看高清完整版 | 久久久精品免费网站| 国产精品亚洲专一区二区三区| 国产午夜亚洲精品不卡| 成人一区二区三区视频在线观看 | 在线播放91灌醉迷j高跟美女 | 欧美日韩成人一区二区| 另类专区欧美蜜桃臀第一页| 久久久99免费| 欧美丝袜丝nylons| 久久超碰97人人做人人爱| 最新国产精品久久精品| 欧美不卡一区二区三区四区| 91美女福利视频| 国产在线乱码一区二区三区| 亚洲人成在线播放网站岛国 | 欧美亚洲一区二区在线| 国产精品456| 日韩一区精品字幕| 国产精品视频一二三区| 欧美不卡一区二区| 欧美酷刑日本凌虐凌虐| 91亚洲精品久久久蜜桃网站| 国产综合色精品一区二区三区| 亚洲电影一区二区三区| 亚洲欧美国产高清| 日本一区二区三区dvd视频在线| 91精品国产手机| 欧美影视一区在线| 91在线视频在线| 国产成人午夜精品影院观看视频| 亚洲制服丝袜一区| 亚洲色图都市小说| 国产精品丝袜久久久久久app| 综合在线观看色| 欧美成人激情免费网| 99riav一区二区三区| 日本亚洲三级在线| 亚洲福利一区二区三区| 欧美精品18+| 国产成人av影院| 青青草91视频| 亚洲靠逼com| 国产女主播视频一区二区| 欧美综合亚洲图片综合区| 久色婷婷小香蕉久久| 国产欧美一区二区三区在线看蜜臀| 成人午夜av影视| 亚洲欧洲成人精品av97| 国产91精品露脸国语对白| 国产精品视频一二三区 | 亚洲一区二区综合| 国产在线一区二区| 日韩精品1区2区3区| 亚洲美女视频在线| 久久久久久久久久美女| 972aa.com艺术欧美| 日韩专区在线视频| 亚洲久草在线视频| 国产精品久久久久久亚洲毛片| 91精品欧美福利在线观看| 狠狠色狠狠色综合系列| 亚洲视频一区二区在线| 久久综合久久综合久久综合| 在线观看www91| 欧美日韩精品一区二区天天拍小说 | 国产日产欧美精品一区二区三区| 91亚洲精品久久久蜜桃网站| 成人美女在线视频| 国产成人精品亚洲午夜麻豆| 国产.欧美.日韩| 国模无码大尺度一区二区三区| 精品一区二区三区香蕉蜜桃| 欧美国产日韩在线观看| 成人小视频在线| 国产不卡视频在线播放| 国产成人综合视频| 国产99久久久精品| 欧美国产一区二区| 91精品在线免费观看| 亚洲一级二级在线| 91亚洲精品一区二区乱码| 欧美精品日韩精品| 久久网站热最新地址| 一区二区三区日韩欧美精品 | 毛片av中文字幕一区二区| 国内精品国产三级国产a久久| 91捆绑美女网站| 日韩欧美在线一区二区三区| 国产精品久久久久久久岛一牛影视| 在线播放/欧美激情| 国产欧美日韩精品一区| 午夜视黄欧洲亚洲| 不卡视频一二三四| 欧美sm极限捆绑bd| 国产一区二区免费看| 99热这里都是精品| 欧美大肚乱孕交hd孕妇| 中文字幕亚洲欧美在线不卡| 亚欧色一区w666天堂| 久久嫩草精品久久久久| 精品1区2区在线观看| 精品国产乱码久久久久久影片| 欧美中文字幕不卡| 欧美日韩一区二区三区在线看| a级精品国产片在线观看| 波多野结衣中文字幕一区二区三区 | 91欧美激情一区二区三区成人| 国产精品白丝jk白祙喷水网站| 91福利视频久久久久| 国产宾馆实践打屁股91| 激情亚洲综合在线| 国产高清在线观看免费不卡| 国产高清在线精品| 国产成人精品影院| 99在线精品一区二区三区| 色网综合在线观看| 欧美日韩成人一区二区| 日韩欧美国产精品| 久久久亚洲午夜电影| 亚洲欧洲韩国日本视频| 亚洲蜜臀av乱码久久精品蜜桃| 一区二区成人在线观看| 久久成人免费网站| 日本高清免费不卡视频| 精品久久久久一区二区国产|