⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 control.java

📁 j2me的联网21点程序
💻 JAVA
字号:
package com.dfun.blackjackServer;  
import java.util.*;

/**************************************************
 * @author Beetle
 * 类功能介绍:系统启动后直接启动主控模块,主控模块启动时初始化
 * 连接管理器,房间管理等。 主控主要负责启动其它模块并在适当的
 * 时候做清除操作
 **************************************************/
public class Control {
	public DataConn dataConn; //数据库连接
	public UserManage userManage; //用户管理
	public HouseManage houseManage; //房间管理
	public SocketManage connManage; //连接管理器
	public Control() {
		DataConn dataConn;
		userManage = new UserManage(this);
		houseManage = new HouseManage(this);
		connManage = new SocketManage(this);
		dataConn = new DataConn();
	}

	public void getOneData(String userId, String inputStr) {
		User user = userManage.getUser(userId);
		int order = Integer.parseInt(inputStr.substring(0, 2));
		inputStr = inputStr.substring(2, inputStr.length());
		switch (order) {
			case 1: //取得总分
				sendOneData(userId, "01" + user.getJetton());
				break;
			case 2: //取得房间信息
				sendOneData(userId, "02" + houseManage.getHouseList());
				break;
			case 3: //新建房间
				String newHouseId = houseManage.addHouse(userId, inputStr);
				sendOneData(userId, "03" + newHouseId);
				userManage.sendInfoToAllUser("18" + houseManage.getHouseList());
				break;
			case 5: //用户进入一个房间发送房间用户列表
				House house = (House) houseManage.houseList.get(inputStr);
				house.intoHouse(userId); //进入房间
				userManage.sendInfoToAllUser("18" + houseManage.getHouseList()); //更新房间列表的人数
				break;
			case 6: //退出房间
				House outHouse = (House) houseManage.houseList.get(inputStr);
				outHouse.outHouse(userId);
				userManage.sendInfoToAllUser("18" + houseManage.getHouseList()); //更新房间列表的人数
				break;
			case 7: //下注
				long chipIn = Long.parseLong(inputStr);
				User userChip = (User) userManage.getUser(userId);
				userChip.setChipIn(chipIn);
				break;
			case 9:  //停牌
				House houseDeal = (House) houseManage.houseList.get(user.houseId);
				houseDeal.deal(Integer.parseInt(user.userId), Integer.parseInt(inputStr));
				houseDeal.sendInfoToHouseUser("08" + houseDeal.getCards());
				break;
			case 10: //分牌
	            //把发牌结果发给所有人
				House houseSpread = (House) houseManage.houseList.get(user.houseId);
				houseSpread.spread(Integer.parseInt(userId));
				houseSpread.sendInfoToHouseUser("10" + houseSpread.getCards());
				break;
			case 11: //双倍下注
				House houseDouble = (House) houseManage.houseList.get(user.houseId);
				houseDouble.doubleCard(Integer.parseInt(userId), Integer.parseInt(inputStr));
				houseDouble.sendInfoToHouseUser("11" + houseDouble.getCards());
				break;
			case 12: //该用户已要牌完毕
				user.userState = 4; //将游戏状态设为等待
				House houseGameOver = (House) houseManage.houseList.get(user.houseId);
				houseGameOver.checkDellOver();
				break;
			case 13://聊天
				House houseMsg = (House) houseManage.houseList.get(user.houseId);
				houseMsg.sendInfoToHouseUser("13"+inputStr);
				break;
		}

	}

	/*****************************************************
	 * 功能介绍:使用连接一发送消息
	 * 输入参数:用户id,要输出的值
	 * 输出参数:无
	 ****************************************************/
	public void sendOneData(String userId, String outStr) {
		SocketConn connOne = (SocketConn) connManage.connOneList.get(userId);
		if (connOne==null){
			return;
		}
		connOne.sendData(outStr);
	}

	public void getTwoData(String userId, String inputStr) {
		SocketConn connTwo = (SocketConn) connManage.connTwoList.get(userId);
		if (connTwo==null){
			return;
		}

		connTwo.sendData(inputStr);
	}

	/*****************************************************
	 * 功能介绍:使用连接二发送消息
	 * 输入参数:用户id,要输出的值
	 * 输出参数:无
	 ****************************************************/
	public void sendTwoData(String userId, String outStr) {
		SocketConn connTwo = (SocketConn) connManage.connTwoList.get(userId);
		if (connTwo==null){
			return ;
		}
		connTwo.sendData(outStr);
	}
	/*****************************************************
	 * 功能介绍:用户下线或者用户断线
	 * 输入参数:用户id
	 * 输出参数:无
	 ****************************************************/
	public void userOffline(String userId){
	    //如果该用户已清除过则不再进行处理
		if (!connManage.removeConn(userId)){
			System.out.println("拒绝了一个清理操作");
			return ;
		}

		User user=userManage.getUser(userId);
		//如果还没有初始化用户则不进行下面清理操作
		if(user==null){
			return;
		}

		House house=(House)houseManage.houseList.get(user.houseId);
		//如果没找到房间则不进行下面清理操作
		if (house==null){
			return;
		}
		//执行房间清理
		house.userOffline(userId);
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -