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

📄 gobangdeal.java

📁 java程序五子棋源代码。 java程序五子棋源代码。
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
		packstringbuffer.append(commstructnode.getUserId());
		packstringbuffer.append(UniversalDefine.SUBDIVISION );
		packstringbuffer.append(stepnum);
		packstringbuffer.append(UniversalDefine.SUBDIVISION );
		packstringbuffer.append(commstructnode.getRoomId());
		packstringbuffer.append(UniversalDefine.SUBDIVISION );
		packstringbuffer.append(commstructnode.getTableid());
		packstring = packstringbuffer.toString();
		socketmanager.sendpacket(packstring,true);
		
	}
	
//	对对家求和的响应
	public void AgreeOppTie(CommStructNode commstructnode,int stepnum,String oppmind){
		this.commstructnode = commstructnode;
		maingameevent.setCommNode(commstructnode);
		StringBuffer packstringbuffer = new StringBuffer();
		packstringbuffer.append("000");
		packstringbuffer.append(UniversalDefine.DIVISION);
		packstringbuffer.append(MudleDefine.GOBANGMUDLE);
		packstringbuffer.append(UniversalDefine.DIVISION);
		packstringbuffer.append(GobangOperateId.opptie);
		packstringbuffer.append(UniversalDefine.DIVISION);
		packstringbuffer.append(commstructnode.getUserId());
		packstringbuffer.append(UniversalDefine.SUBDIVISION );
		packstringbuffer.append(stepnum);
		packstringbuffer.append(UniversalDefine.SUBDIVISION );
		packstringbuffer.append(oppmind);
		packstringbuffer.append(UniversalDefine.SUBDIVISION );
		packstringbuffer.append(commstructnode.getRoomId());
		packstringbuffer.append(UniversalDefine.SUBDIVISION );
		packstringbuffer.append(commstructnode.getTableid());
		packstring = packstringbuffer.toString();
		socketmanager.sendpacket(packstring,true);
	}
	
	
	//用户认输
	public void UserSurrender(CommStructNode commstructnode,int stepnum){
		this.commstructnode = commstructnode;
		maingameevent.setCommNode(commstructnode);
		StringBuffer packstringbuffer = new StringBuffer();
		packstringbuffer.append("000");
		packstringbuffer.append(UniversalDefine.DIVISION);
		packstringbuffer.append(MudleDefine.GOBANGMUDLE);
		packstringbuffer.append(UniversalDefine.DIVISION);
		packstringbuffer.append(GobangOperateId.usersurrender);
		packstringbuffer.append(UniversalDefine.DIVISION);
		packstringbuffer.append(commstructnode.getUserId());
		packstringbuffer.append(UniversalDefine.SUBDIVISION );
		packstringbuffer.append(stepnum);
		packstringbuffer.append(UniversalDefine.SUBDIVISION );
		packstringbuffer.append(commstructnode.getRoomId());
		packstringbuffer.append(UniversalDefine.SUBDIVISION );
		packstringbuffer.append(commstructnode.getTableid());
		packstring = packstringbuffer.toString();
		socketmanager.sendpacket(packstring,true);
		

	}
	
	
	
//	用户在线检测
	public void setCheckFlag(String userid ){
		StringBuffer packstringbuffer = new StringBuffer();
		packstringbuffer.append("000");
		packstringbuffer.append(UniversalDefine.DIVISION);
		packstringbuffer.append(MudleDefine.GOBANGMUDLE);
		packstringbuffer.append(UniversalDefine.DIVISION);
		packstringbuffer.append(GobangOperateId.onlinecheck);
		packstringbuffer.append(UniversalDefine.DIVISION);
		packstringbuffer.append(userid);
		socketmanager.sendpacket(packstringbuffer.toString(),false);
		
	}
	
	//用户退出游戏
	public void ExitGame(String userid){
		StringBuffer packstringbuffer = new StringBuffer();
		packstringbuffer.append("000");
		packstringbuffer.append(UniversalDefine.DIVISION);
		packstringbuffer.append(MudleDefine.GOBANGMUDLE);
		packstringbuffer.append(UniversalDefine.DIVISION);
		packstringbuffer.append(GobangOperateId.userexit);
		packstringbuffer.append(UniversalDefine.DIVISION);
		packstringbuffer.append(userid);
		socketmanager.sendpacket(packstringbuffer.toString(),false);
		
	}
	
	//数据重发
	public void ReSend(){
		socketmanager.sendpacket(packstring,true);
	}
	
	//供socketmanager调用,表示接收到数据
	public void RecvieData(String recpacket) {
			// TODO 自动生成方法存根
			StringTokenizer stringtokenizer = new StringTokenizer(recpacket, UniversalDefine.DIVISION);
			String errcode = "";
			String serviceid = "";
			String operateid = "";
			String body = "";
			try {
				if (stringtokenizer.hasMoreTokens()) {
					errcode = stringtokenizer.nextToken();   //取得错误号				
				}
				if (stringtokenizer.hasMoreTokens()) {
					serviceid = stringtokenizer.nextToken();   //取得业务号				
				}
				if (stringtokenizer.hasMoreTokens()) {
					operateid = stringtokenizer.nextToken();   //取得操作码
				}
				if (stringtokenizer.hasMoreTokens()) {
					body = stringtokenizer.nextToken();   //取得业务数据
				}
				if(serviceid.equals(SocketManager.ITORECONNECT)){//与服务器断开正准备重连
					gameeventdeal.handleEvent(GobangEvent.TORECONNECT,maingameevent);
				
				}else if(serviceid.equals(SocketManager.IRECONNECT)){//与服务器重连成功
					gameeventdeal.handleEvent(GobangEvent.RECONNECT,maingameevent);
					
				}else if(serviceid.equals(SocketManager.IDISCONNECT)){//无法重新连接的服务器
					gameeventdeal.handleEvent(GobangEvent.DISCONNECT,maingameevent);
				}
				if ( !serviceid.equals(MudleDefine.GOBANGMUDLE)){   //不是本模块需要处理的数据
					if(serviceid.equals(MudleDefine.UNIVERMUDLE)&&operateid.equals(UniOperateId.modify)){
						//是跨模块资料修改
						ModifyRespond(body);
						
					}
					return;
				}
				if ( operateid.equals(GobangOperateId.roomlist) ) {   //获取房间列表响应
					RoomInfoRespond(body);
					
				}else if(operateid.equals(GobangOperateId.otherinroom)){//其他用户进入房间
					RoomListModify(body);
								
				}else if(operateid.equals(GobangOperateId.otheroutroom)){//其他用户退出房间
					RoomListModify(body);
					
				}else if( operateid.equals(GobangOperateId.usercount ) ){   //获取用户游戏统计响应
					UserCountRespond(body);
					
				}else if( operateid.equals(GobangOperateId.roomin)){  //获取大厅信息响应
					GetUserInfoRespond(body);
				
				}else if( operateid.equals(GobangOperateId.roomout)){  //退出房间响应
					ExitRoomRespond(body);
				
				}else if(operateid.equals(GobangOperateId.usersit)){  //用户坐下响应
					UserSitRespond(body);
				
				}else if(operateid.equals(GobangOperateId.userup)){  //用户站起响应
					UserUpRespond(body);
					
				}else if(operateid.equals(GobangOperateId.oppusersit)){  //对家坐下响应
					OppUserSitRespond(body);
					
				}else if(operateid.equals(GobangOperateId.otherusersit)){//其他用户坐下响应
					OtherUserSitRespond(body);
				
				}else if(operateid.equals(GobangOperateId.otheruserup)){//其他用户站起响应
					OtherUserUpRespond(body);
				
				}else if(operateid.equals(GobangOperateId.userready)){//用户准备好响应
					UserReadyRespond(body);
			
				}else if(operateid.equals(GobangOperateId.otheruserready)){//房间里其他用户准备好响应
					OtherReadyRespond(body);
				
				}else if(operateid.equals(GobangOperateId.userstart)){//用户开始游戏响应
					UserStartRespond(body);
				
				}else if(operateid.equals(GobangOperateId.otheruserstart)){//房间里其他用户开始游戏响应
					OtherStartRespond(body);
					
				}else if(operateid.equals(GobangOperateId.gaming)){//用户游戏下子响应
					UserPlayRespond(body);
					
				}else if(operateid.equals(GobangOperateId.oppgaming)){//对家游戏下子响应
					OppPlayRespond(body);
					
				}else if(operateid.equals(GobangOperateId.othergameover)){//大厅里其他用户一盘游戏结束响应
					OtherGameOver(body);
					
				}else if(operateid.equals(GobangOperateId.otherinfo)){//大厅里其他用户退出游戏响应
					OtherInfoRecive(body);
					
				}else if(operateid.equals(GobangOperateId.otheruserexit)){//大厅里其他用户退出游戏响应
					OtherExit(body);
					
				}else if(operateid.equals(GobangOperateId.usergiveup)){//用户放弃下子操作响应
					UserGiveUpRespond(body);
					
				}else if(operateid.equals(GobangOperateId.oppgiveup)){//对家放弃下子操作响应
					OppGiveUpRespond(body);
					
				}else if(operateid.equals(GobangOperateId.userregret)){//用户请求悔棋操作响应
					UserRegretRespond(body);
					
				}else if(operateid.equals(GobangOperateId.oppregret)){//对家请求悔棋操作响应
					OppRegretRequest(body);
					
				}else if(operateid.equals(GobangOperateId.agreeoppregret)){//同意对家悔棋操作响应
					AgreenOppRegret(body);
					
				}else if(operateid.equals(GobangOperateId.usertie)){//用户求和操作响应
					UserTieRespond(body);
					
				}else if(operateid.equals(GobangOperateId.opptie)){//对家求和操作响应
					OppTie(body);
					
				}else if(operateid.equals(GobangOperateId.agreeopptie)){//同意对家求和操作响应
					AgreenOppTie(body);
					
				}else if(operateid.equals(GobangOperateId.usersurrender)){//用户投降操作响应
					UserSurrenderRespond(body);
					
				}else if(operateid.equals(GobangOperateId.oppsurrender)){//对家投降操作响应
					OppSurrender(body);
				}
			} catch (Exception e) {
				e.printStackTrace();
			}
		}

	//用户资料修改	
	public void ModifyRespond(String body){
		String succflag;
		StringTokenizer stringtokenizer = new StringTokenizer(body, ";");
		if (stringtokenizer.hasMoreTokens()) {
			succflag = stringtokenizer.nextToken();   //取得资料修改是否成功标志
			if ( succflag.equals("0") ){  //资料修改成功
				commstructnode.setUserId(stringtokenizer.nextToken());
				maingameevent.setCommNode(commstructnode);
				gameeventdeal.handleEvent(GobangEvent.MODIFYSUCCESSFUL,maingameevent);
				}
			}else{  //失败
				gameeventdeal.handleEvent(GobangEvent.MODIFYFAIL,maingameevent);
			}
	}
	
	
	
	//从服务器接收到房间列表信息
	private void RoomInfoRespond(String body){
		StringTokenizer stringtokenizer = new StringTokenizer(body, UniversalDefine.SUBDIVISION);
		if (stringtokenizer.hasMoreTokens())
			if(stringtokenizer.nextToken().equals("0")){
				for(int i = 0; i < ROOM_COUNT; i ++){
					if (stringtokenizer.hasMoreTokens()) {
						StringTokenizer roominfotokenizer = new StringTokenizer(stringtokenizer.nextToken(),UniversalDefine.$DIVISION);   //取得房间信息				
						if(roominfotokenizer.hasMoreTokens()){
							roomstruct[i].roomnum=Integer.parseInt(roominfotokenizer.nextToken());
							
						}
						if(roominfotokenizer.hasMoreTokens()){
							roomstruct[i].capacity = Integer.parseInt(roominfotokenizer.nextToken());
							
						}
						if(roominfotokenizer.hasMoreTokens()){
							roomstruct[i].onlinenum = Integer.parseInt(roominfotokenizer.nextToken());
							
						}
						
						
					}
				}	
			}
		if(gameeventdeal != null)
			gameeventdeal.handleEvent(GobangEvent.ROOMINFORECEIVE,maingameevent);
	}
	
	//其他用户进入\退出房间
	public void RoomListModify(String body){
		int roomnum=0;
		int onlinenum = 0;
		StringTokenizer stringtokenizer = new StringTokenizer(body, UniversalDefine.SUBDIVISION);
		if (stringtokenizer.hasMoreTokens()){
			roomnum = Integer.parseInt(stringtokenizer.nextToken());
			
		}
		if (stringtokenizer.hasMoreTokens()){
			onlinenum = Integer.parseInt(stringtokenizer.nextToken());
		
		}
		for(int i = 0 ; i < ROOM_COUNT; i++){
			if(roomstruct[i].roomnum == roomnum){
				roomstruct[i].onlinenum = onlinenum;
			}
		}
		
		gameeventdeal.handleEvent(GobangEvent.ROOMINFOMODIFY,maingameevent);
	}
	
	
	//用户游戏数据统计响应
	private void UserCountRespond(String body){
		StringTokenizer stringtokenizer = new StringTokenizer(body, UniversalDefine.SUBDIVISION);
		if (stringtokenizer.hasMoreTokens())
			if(stringtokenizer.nextToken().equals("0")){
					if (stringtokenizer.hasMoreTokens()) {
						commstructnode.SetCount(stringtokenizer.nextToken());
					}		
				}
		gameeventdeal.handleEvent(GobangEvent.USERCOUNTRECEIVE,maingameevent);
	}
	
	
	//获取大厅信息的响应
	private void GetUserInfoRespond(String body){
		int tempid=0,tempseq=0,i=0,j=0;
		String userid="",nickname="",picture="",usertype="",status="";
		String tableid = "",tableseq="";
		StringTokenizer stringtokenizer = new StringTokenizer(body, UniversalDefine.SUBDIVISION);
		StringTokenizer userinfotokenizer = new StringTokenizer("$",UniversalDefine.$DIVISION);   //取得玩家信息	的字符串初始化	
		if (stringtokenizer.hasMoreTokens())
			if(stringtokenizer.nextToken().equals("0")){
				while(stringtokenizer.hasMoreTokens()) {
					if(j>=TABLE_COUNT*2){  //大厅48个座位
						break;
					}
					j++;
					userinfotokenizer.ResetString(stringtokenizer.nextToken()); //取得大厅里的坐着的玩家信息				
					if(userinfotokenizer.hasMoreTokens()){
						userid=userinfotokenizer.nextToken();
					}
					if(userinfotokenizer.hasMoreTokens()){
						nickname = userinfotokenizer.nextToken();
					}
					if(userinfotokenizer.hasMoreTokens()){
						picture = userinfotokenizer.nextToken();
					}
					if(userinfotokenizer.hasMoreTokens()){
						usertype = userinfotokenizer.nextToken();
					}
					if(userinfotokenizer.hasMoreTokens()){
						status = userinfotokenizer.nextToken();
					}
					if(userinfotokenizer.hasMoreTokens()){
						tableid = userinfotokenizer.nextToken();
					}
					if(userinfotokenizer.hasMoreTokens()){
						tableseq =userinfotokenizer.nextToken();
					}
					if(tableid.equals("0")||tableid.equals("")||tableseq.equals("")){
						i = 0;
					}
					else
					{
						tempid = Integer.parseInt(tableid);
						tempseq = Integer.parseInt(tableseq);
						i = tempid*2 - 1 + tempseq;
						
					}
					if(i!=0){
						player[i].userid = userid;
						player[i].nickname = nickname;
						player[i].picture = picture;
						player[i].usertype = usertype;
						player[i].status = status;
						player[i].tableid = tableid;
						player[i].tableseq = tableseq;
					}
						
				}	
			}
		gameeventdeal.handleEvent(GobangEvent.HALLINFORECEIVE,maingameevent);
	}
	
	
	
	//用户退出房间响应
	private void ExitRoomRespond(String body){
		StringTokenizer stringtokenizer = new StringTokenizer(body, UniversalDefine.SUBDIVISION);
		if (stringtokenizer.hasMoreTokens())
			if(stringtokenizer.nextToken().equals("0")){
				commstructnode.setRoomId("");
				commstructnode.setTableId("");
				commstructnode.setTableSeq(0);

⌨️ 快捷键说明

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