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

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

?? main.java

?? 21點手機網絡游戲源碼,大家可以看看
?? JAVA
字號:
 package com.dfun.blackjack;

import javax.microedition.lcdui.*;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
import javax.microedition.rms.RecordStore;
import java.util.*;
import java.io.*;

/**************************************************
 * @author Beetle
 * 類功能介紹:主控類,用于控制調用各個模塊
 **************************************************/
public class Main
	extends MIDlet
	implements CommandListener, Runnable {
	private Display display;
	private TextField phoneNumber;
	private TextField password;
	private TextField userName;
	private Command cmdOk;
	private Command cmdHelp;
	private String url; //連接地址
	private Connection conn; //連接對象
	private MainCanvas mainCanvas; //游戲主界面
	//刷新狀態(tài),0為刷新大廳,1為刷新房間用戶列表第一次接到房間用戶列表時將狀態(tài)值改為1
	//并且建立房間,狀態(tài)值為1后只刷新房間列表不建立,2為刷新mainCanvas 的用戶列表
	public int refreshState;
	public Hall hall; //游戲大廳
	public House house;
	public Form register;
	public String strPhoneNumber; //用戶手機號
	public String strPassword; //用戶密碼
	public String strUserName; //用戶昵稱
	public long userId; //當次游戲用戶的唯一id
	public int userCount; //用戶總分
	public Msg msg;
	public Thread getTwoData;
	public String[][] jettonList; //籌碼列表

	/*******************************************************
	 * 功能介紹:構造函數
	 * 輸入參數:無
	 *******************************************************/
	public Main() {
		phoneNumber = new TextField("請輸入您的手機號碼它將用于兌獎,請保證正確無誤!", "", 11, TextField.NUMERIC);
		password = new TextField("登陸密碼", "", 6, TextField.PASSWORD);
		userName = new TextField("用戶昵稱", "", 10, TextField.ANY);
		cmdOk = new Command("注冊", Command.OK, Command.OK);
		cmdHelp = new Command("幫助", Command.OK, Command.HELP);
		register = new Form("注冊");
		register.addCommand(cmdOk);
		register.addCommand(cmdHelp);
		register.append(phoneNumber);
		register.append(password);
		register.append(userName);
		register.setCommandListener(this);
		refreshState = 0; //默認為刷新房間列表
	}

	protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
	}

	protected void pauseApp() {
	}

	protected void startApp() throws MIDletStateChangeException {
		display = Display.getDisplay(this);
		conn = new Connection(this); // 初始化網絡
		msg = new Msg(this, display, conn); // 初始化聊天室
		getTwoData = new Thread(this);
		hall = new Hall(display, conn, strPhoneNumber, this);
		house = new House(display, conn, strPhoneNumber, this, hall);
		if (getUserInfo()) { //檢測是否注冊
			display.setCurrent(new Welcom(display, conn, this));
		}
		else {
			showRegister();
		}
	}

	/*****************************************************
	 * 功能介紹:取得手機號碼
	 * 輸入參數:無
	 * 輸出參數:手機號碼
	 *****************************************************/
	public boolean getUserInfo() {
		RecordStore rs;
		byte[] data1, data2, data3;
		try {
			rs = RecordStore.openRecordStore("userInfo", false);
			if (rs.getNumRecords() == 0) {
				return false;
			}
			else {
				data1 = rs.getRecord(1);
				data2 = rs.getRecord(2);
				data3 = rs.getRecord(3);
			}
			rs.closeRecordStore();
			strPhoneNumber = new String(data1);
			strPassword = new String(data2);
			ByteArrayInputStream bis = new ByteArrayInputStream(data3);
			DataInputStream is = new DataInputStream(bis);
			strUserName = is.readUTF();
			return true;
		}
		catch (Exception e) {
			System.out.println(e.getMessage());
			return false;
		}
	}

	/*****************************************************
	 * 功能介紹:設置手機號碼
	 * 輸入參數:手機號碼
	 * 輸出參數:無
	 *****************************************************/
	public void setUserInfo(String phoneNumber, String password, String userName) {
		try {
			this.strPhoneNumber = phoneNumber;
			this.strPassword = password;
			this.strUserName = userName;
			RecordStore rs = null;
			byte data1[] = phoneNumber.getBytes();
			byte data2[] = password.getBytes();
			ByteArrayOutputStream bos = new ByteArrayOutputStream();
			DataOutputStream dos = new DataOutputStream(bos);
			dos.writeUTF(userName);
			byte data3[] = bos.toByteArray();
			rs = RecordStore.openRecordStore("userInfo", true);
			for (int i = 1; i <= rs.getNumRecords(); i++) {
				rs.deleteRecord(1);
			}
			if (rs.getNumRecords() == 0) {
				rs.addRecord(data1, 0, data1.length);
				rs.addRecord(data2, 0, data2.length);
				rs.addRecord(data3, 0, data3.length);
			}
			rs.closeRecordStore();

		}
		catch (Exception e) {
			System.out.println(e.toString());
		}
	}

	/*****************************************************
	 * 功能介紹:裝入指定的圖片
	 * 輸入參數:無
	 * 輸出參數:無
	 ****************************************************/
	public Image[] loadImg(int gameType) {
		Image img[];
		if (gameType == 1) { //歡迎圖片
			try {
				img = new Image[2];
				img[0] = Image.createImage("/welcomone.png");
				img[1] = Image.createImage("/welcomtwo.png");
				return img;
			}
			catch (Exception e) {
				System.out.println("load image error");
				return null;
			}
		}
		else if (gameType == 2) {
			try {
				img = new Image[8];
				img[0] = Image.createImage("/backdrop.png");
				img[1] = Image.createImage("/heitao.png");
				img[2] = Image.createImage("/hongxin.png");
				img[3] = Image.createImage("/caohua.png");
				img[4] = Image.createImage("/fangkuai.png");
				img[5] = Image.createImage("/caidan.png");
				img[6] = Image.createImage("/message.png");
				img[7] = Image.createImage("/gameover.png");
				return img;
			}
			catch (Exception e) {
				System.out.println("load image error");
				return null;
			}
		}
		else if (gameType == 3) {
			try {
				img = new Image[5];
				img[0] = Image.createImage("/fangjian.png");
				return img;
			}
			catch (Exception e) {
				System.out.println("load image error");
				return null;
			}

		}
		else if (gameType == 4) {
			try {
				img = new Image[5];
				img[0] = Image.createImage("/renwu.png");
				return img;
			}
			catch (Exception e) {
				System.out.println("load image error");
				return null;
			}

		}

		return null;
	}

	public void showMainCanvas(int type) {
		mainCanvas = new MainCanvas(type, display, conn, this, house.houseUserList, jettonList, hall.houseList[hall.choHouseList.getSelectedIndex()][1], (int) userId);
		refreshState = 2;
		display.setCurrent(mainCanvas);

	}

	public void showRegister() {
		display.setCurrent(register);
		return;
	}

	public void showHall() {
		getTwoData.start();
		hall.showHall();
	}

	/*****************************************************
	 * 功能介紹:退出整個程序
	 * 輸入參數:無
	 * 輸出參數:無
	 *****************************************************/
	public void exit() {
		try {
			destroyApp(false);
			notifyDestroyed();
		}
		catch (Exception e) {
		}
	}

	/*****************************************************
	 * 功能介紹:根據間隔字符將一字符串切成數組
	 * 輸入參數:要切的字符串,間隔字符
	 * 輸出參數:字符串數組
	 *****************************************************/
	public String[] split(String str, String pre) {
		Vector veTmp = new Vector();
		while (str.indexOf(pre) != -1) {
			veTmp.addElement(str.substring(0, str.indexOf(pre)));
			str = str.substring(str.indexOf(pre) + 1, str.length());
		}
		if (veTmp.size() == 0) {
			return null;
		}
		String arrTmp[] = new String[veTmp.size()];
		for (int i = 0; i < arrTmp.length; i++) {
			arrTmp[i] = (String) veTmp.elementAt(i);
		}
		veTmp = null;
		return arrTmp;
	}

	/*****************************************************
	 * 功能介紹:根據間隔字符將一字符串切成數組
	 * 輸入參數:要切的字符串,間隔字符
	 * 輸出參數:字符串數組
	 *****************************************************/
	public String[][] split(String str, String pre, int col) {
		Vector veTmp = new Vector();
		while (str.indexOf(pre) != -1) {
			veTmp.addElement(str.substring(0, str.indexOf(pre)));
			str = str.substring(str.indexOf(pre) + 1, str.length());
		}

		if (veTmp.size() == 0) {
			return null;
		}

		String arrTmp[][] = new String[veTmp.size() / col][col];
		int n = 0;
		for (int i = 0; i < arrTmp.length; i++) {
			for (int j = 0; j < col; j++) {
				arrTmp[i][j] = (String) veTmp.elementAt(n);
				n++;
			}
		}
		veTmp = null;
		return arrTmp;
	}

	/*****************************************************
	 * 功能介紹:刷新用戶牌公共方法
	 * 輸入參數:服務端發(fā)下的籌碼數據
	 * 輸出參數:無
	 *****************************************************/
	private void refreshCards(String inputStr) {
		String cardsTmp[][] = split(inputStr, ",", 3);
		if (cardsTmp==null){
			return;
		}
		int cards[][] = new int[cardsTmp.length][3];
		for (int i = 0; i < cardsTmp.length; i++) {
			cards[i][0] = Integer.parseInt(cardsTmp[i][0]);
			cards[i][1] = Integer.parseInt(cardsTmp[i][1]);
			cards[i][2] = Integer.parseInt(cardsTmp[i][2]);
		}
		mainCanvas.refreshDeal(cards);
	}

	public void run() {
		String inputStr;
		int order;
		while (true) {
			inputStr = conn.getTwoData();
			order = Integer.parseInt(inputStr.substring(0, 2));
			inputStr = inputStr.substring(2, inputStr.length());
			switch (order) {
				case 5: //如果用戶列表有變動則主動將它發(fā)下來
					if (inputStr.equals("full")) {
						display.setCurrent(new Alert("系統提示", "房間人數已滿或游戲已開始", null, AlertType.INFO));
					}
					else {
						house.refreshUserList(inputStr);
					}
					break;
				case 7: //游戲開始
					String arrTmp[] = split(inputStr, "*");
					house.refreshUserList(arrTmp[0]);
					this.jettonList = split(arrTmp[1], ",", 3);
					showMainCanvas(0);
					break;
				case 8: //所有玩家下注完畢后發(fā)牌
					refreshCards(inputStr); //刷新發(fā)牌列表
					break;
				case 9:
					String arrJetton[][] = split(inputStr, ",", 3);
					mainCanvas.refreshJetton(arrJetton); //刷新籌碼列表
					break;
				case 10:
					refreshCards(inputStr); //刷新發(fā)牌列表
					break;
				case 11:
					refreshCards(inputStr); //刷新發(fā)牌列表
					break;
				case 12: //該用戶要牌完畢
					refreshCards(inputStr); //刷新發(fā)牌列表
					break;
				case 13: // 聊天消息
					msg.addMsg(inputStr);
					if (display.getCurrent() == house.houseForm || display.getCurrent() == mainCanvas) {
						msg.showForm();
					}
					break;
				case 14: //游戲結束顯示游戲結果
					mainCanvas.gameOver(inputStr);
					break;
				case 15: //新用戶加入刷新
					String arrAddUser[] = split(inputStr, "*");
					house.refreshUserList(arrAddUser[0]);
					String t0[][] = split(arrAddUser[0], ",", 3);
					String t1[][] = split(arrAddUser[1], ",", 3);
					mainCanvas.refreshHouseUserList(t0); //刷新用戶列表
					mainCanvas.refreshJetton(t1); //刷新籌碼列表
					break;
				case 16: //加入已開始的游戲
					String arr[] = split(inputStr, "*");
					house.refreshUserList(arr[0]);
					this.jettonList = split(arr[1], ",", 3);
					showMainCanvas(1);
					refreshCards(arr[2]);
					break;
				case 17: //刷新用戶列表
					house.refreshUserList(inputStr);
					String houseUserList[][] = split(inputStr, ",", 3);
					mainCanvas.refreshHouseUserList(houseUserList);
					break;
				case 18:  //刷新大廳
					hall.refreshHall(inputStr);
					break;
			}
		}
	}

	public void commandAction(Command c, Displayable d) {
		if (d == register && c == cmdOk) {
			strPhoneNumber = phoneNumber.getString();
			strUserName = userName.getString();
			strPassword = password.getString();
			if (strPhoneNumber.length() < 11) {
				display.setCurrent(new Alert("系統提示", "手機號碼長度必須是11位!", null, AlertType.ERROR));
				return;
			}
			if (strPassword.length() <= 0) {
				display.setCurrent(new Alert("系統提示", "您還未填寫登陸密碼!", null, AlertType.ERROR));
				return;
			}
			if (strUserName.length() <= 0) {
				display.setCurrent(new Alert("系統提示", "您還未填寫昵稱!", null, AlertType.ERROR));
				return;
			}

			setUserInfo(strPhoneNumber, strPassword, strUserName);
			display.setCurrent(new Welcom(display, conn, this));
		}
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91久久精品一区二区| 91麻豆国产精品久久| 丝袜亚洲另类欧美| 亚洲韩国一区二区三区| 亚洲国产一二三| 亚洲成av人影院| 一本到高清视频免费精品| 欧美日韩亚州综合| 亚洲日本丝袜连裤袜办公室| 国产精品一区二区黑丝| 欧美一区三区二区| 亚洲第一搞黄网站| 欧美日韩一区成人| 一区二区三区蜜桃网| 99精品视频免费在线观看| 国产欧美日韩在线| 秋霞av亚洲一区二区三| 在线免费视频一区二区| 亚洲精品欧美专区| 色婷婷激情久久| 综合久久国产九一剧情麻豆| 波波电影院一区二区三区| 久久久久久久久伊人| 国产自产高清不卡| 久久综合九色综合97婷婷女人| 久久精品99国产精品| 欧美一级搡bbbb搡bbbb| 日本美女一区二区三区| 日韩亚洲欧美中文三级| 理论片日本一区| 国产午夜亚洲精品理论片色戒| 久久精品国产澳门| 久久久久久久久久久久久久久99| 国产综合久久久久久久久久久久| 久久蜜臀中文字幕| 成人免费视频免费观看| 国产精品麻豆视频| 色吧成人激情小说| 首页国产欧美日韩丝袜| 日韩一区国产二区欧美三区| 美女视频免费一区| 国产午夜精品一区二区三区嫩草 | 国产成人亚洲综合a∨婷婷| 精品国产免费视频| 国产美女久久久久| 亚洲视频一区二区在线观看| 在线观看91精品国产入口| 日韩精品一级二级| 久久综合色鬼综合色| 9i看片成人免费高清| 亚洲一区成人在线| 日韩美女视频在线| bt欧美亚洲午夜电影天堂| 亚洲午夜羞羞片| 久久久欧美精品sm网站| 99久久久久免费精品国产| 天天综合网天天综合色| 日韩精品一区二区在线| 成人app在线观看| 日韩二区三区在线观看| 精品国产99国产精品| 91首页免费视频| 日韩精品91亚洲二区在线观看| 精品粉嫩超白一线天av| 一本色道a无线码一区v| 日本不卡一区二区三区高清视频| 国产嫩草影院久久久久| 欧美日韩一区二区三区视频| 国产精品一区一区三区| 亚洲成a人片综合在线| 久久久99免费| 91精品国产一区二区三区蜜臀| 成人午夜精品一区二区三区| 天堂蜜桃91精品| 最新国产成人在线观看| 久久综合九色综合久久久精品综合| 94-欧美-setu| 国产美女精品人人做人人爽| 亚洲五月六月丁香激情| 欧美国产欧美亚州国产日韩mv天天看完整 | 亚洲成人精品一区二区| 国产精品色婷婷久久58| 日韩一区二区电影网| 欧美在线一区二区三区| 成人性生交大片免费| 免费在线观看成人| 一级特黄大欧美久久久| 中文字幕乱码久久午夜不卡| 精品国产不卡一区二区三区| 91麻豆精品国产综合久久久久久| 91视频.com| www.激情成人| www.66久久| 国产成人亚洲综合a∨猫咪| 美洲天堂一区二卡三卡四卡视频 | 欧美经典一区二区| 欧美videossexotv100| 91精品一区二区三区在线观看| 色呦呦国产精品| 91丨porny丨首页| 99精品视频一区二区| av午夜一区麻豆| 成人福利在线看| gogogo免费视频观看亚洲一| 国产不卡视频一区二区三区| 国产精品一区二区久激情瑜伽 | 亚洲自拍偷拍欧美| 亚洲精品高清视频在线观看| 亚洲天堂福利av| 亚洲日本电影在线| 亚洲视频免费在线观看| 亚洲视频在线一区二区| 亚洲精品视频在线看| 亚洲精品美国一| 亚洲综合久久av| 亚洲h动漫在线| 蜜臀久久99精品久久久久宅男 | 久久精品噜噜噜成人88aⅴ| 日韩精品福利网| 蜜桃av一区二区| 韩国成人福利片在线播放| 国产乱淫av一区二区三区| 国产成人日日夜夜| 99久久精品国产麻豆演员表| 91捆绑美女网站| 欧美色图激情小说| 日韩亚洲欧美一区| 26uuu亚洲综合色欧美| 国产精品丝袜黑色高跟| 亚洲激情图片一区| 日本不卡免费在线视频| 国产大陆a不卡| 91福利在线免费观看| 欧美精品日日鲁夜夜添| 精品国产乱码久久久久久牛牛| 国产欧美视频在线观看| 亚洲卡通欧美制服中文| 青青草原综合久久大伊人精品优势| 麻豆成人av在线| a在线播放不卡| 欧美精品xxxxbbbb| 欧美高清在线一区二区| 亚洲成人av在线电影| 国产河南妇女毛片精品久久久 | 亚洲观看高清完整版在线观看 | 麻豆国产精品一区二区三区| 夫妻av一区二区| 欧美老女人在线| 国产精品久久久久一区| 日产欧产美韩系列久久99| 成人禁用看黄a在线| 91精品国产入口在线| 国产精品久久久久久久蜜臀| 日本一区中文字幕| 一本高清dvd不卡在线观看| 日韩女优av电影在线观看| 亚洲精品老司机| 国产成人在线观看免费网站| 欧美日韩国产一级| 国产精品区一区二区三| 奇米一区二区三区av| 色诱亚洲精品久久久久久| 久久综合九色综合97婷婷女人| 亚洲成人av一区| 99久久精品免费看国产免费软件| 欧美成人精品福利| 亚洲国产日韩一级| 99视频在线观看一区三区| 久久综合色天天久久综合图片| 亚洲风情在线资源站| 91免费版在线看| 国产精品三级av| 精品一区二区av| 欧美一区二区三区视频在线| 亚洲久草在线视频| 99国产精品国产精品毛片| 久久综合九色综合欧美98| 免费成人美女在线观看| 欧美日韩一二三区| 亚洲一区二区三区四区不卡| av不卡在线播放| 国产精品对白交换视频| 国产成人av一区| 久久久国产精品不卡| 国产一区福利在线| 精品国产乱码久久久久久久久 | 91免费版在线| 自拍偷在线精品自拍偷无码专区| 国产一区二区三区av电影| 日韩欧美国产综合| 青青草原综合久久大伊人精品| 欧美日韩dvd在线观看| 亚洲成av人在线观看| 欧美另类videos死尸| 日韩专区中文字幕一区二区| 67194成人在线观看| 毛片一区二区三区| 亚洲精品在线免费观看视频| 久草中文综合在线| 国产亚洲欧美一级|