gobangdeal.java

来自「java程序五子棋源代码。 java程序五子棋源代码。」· Java 代码 · 共 1,531 行 · 第 1/4 页

JAVA
1,531
字号
package com.tianxia.qipai.model.game.gobang;

import com.tianxia.qipai.event.MainGameEvent;
import com.tianxia.qipai.event.UniGameEvent;
import com.tianxia.qipai.model.socket.SocketInterface;
import com.tianxia.qipai.model.socket.SocketManager;
import com.tianxia.qipai.model.universal.RegModel;
import com.tianxia.qipai.model.universal.UniOperateId;
import com.tianxia.qipai.model.util.CommStructNode;
import com.tianxia.qipai.model.util.GameEventDeal;
import com.tianxia.qipai.model.util.MudleDefine;
import com.tianxia.qipai.model.util.StringTokenizer;
import com.tianxia.qipai.model.util.UniversalDefine;
import com.tianxia.qipai.view.game.gobang.RoomList;
import com.tianxia.qipai.view.universal.RegView;
import com.tianxia.qipai.event.*;

public class GobangDeal implements SocketInterface {
	private SocketManager socketmanager;   //socket连接管理器
	private GameEventDeal gameeventdeal;   //事件处理接口
	private MainGameEvent maingameevent;    //
	private CommStructNode commstructnode;   //通信结点
	private CommStructNode otheruserinfo;   //游戏对手信息
	private static final int ROOM_COUNT = 5;
	private static final int TABLE_COUNT = 24;
	private  RoomStruct roomstruct[] = new RoomStruct[ROOM_COUNT];
	private PlayerStruct  player[] = new PlayerStruct[TABLE_COUNT*2+1];    //存放大厅里的所有用户信息
	private String packstring;  //最近发送的数据,供重发用
	public static GobangDeal instance;
	public GobangDeal() {
		super();
		
		// TODO 自动生成构造函数存根
	}

	public void BeginToConnect() {
		// TODO 自动生成方法存根

	}

	public  void init(MainGameEvent maingameevent){
	//	socketmanager = new SocketManager(false);
		socketmanager = SocketManager.getInstance();
		this.maingameevent = maingameevent;
		for(int i=0;i<5;i++){
			roomstruct[i] = new RoomStruct();
		}
		for(int i=0;i<=TABLE_COUNT*2;i++){
			player[i] = new PlayerStruct();
		}
		packstring = "";
		//		//服务器ADSL拨号环境测试
		//socketmanager.resetipstring("datagram://xiezhengyu.dynserv.com:5010");
		//模拟器本机测试环境
		socketmanager.resetipstring("datagram://127.0.0.1:5010");
		socketmanager.resetSocInterface(this);
		//socketmanager.init(this,"datagram://xiezhengyu.dynserv.com:5010");
		commstructnode = this.maingameevent.getCommNode();
		otheruserinfo = new CommStructNode();
		getRoomList(maingameevent.getCommNode());
		
	}
	
	public static synchronized GobangDeal getInstance(){
		if(instance == null){
			instance = new GobangDeal();
		}
			return instance;
	}
	

	//设置父级接口
	public void setEventDeal(GameEventDeal gameeventdeal){
		this.gameeventdeal = gameeventdeal;
		
	}
	
	
	//获取房间列表信息
	public  RoomStruct[] getRoomInfo(){
		return roomstruct;
	}
	
	
	//获取房间列表请求
	public void getRoomList(CommStructNode commstructnode){
		StringBuffer packstringbuffer = new StringBuffer();
		packstringbuffer.append("000");
		packstringbuffer.append(UniversalDefine.DIVISION);
		packstringbuffer.append(MudleDefine.GOBANGMUDLE);
		packstringbuffer.append(UniversalDefine.DIVISION);
		packstringbuffer.append(GobangOperateId.roomlist);
		packstringbuffer.append(UniversalDefine.DIVISION);
		packstringbuffer.append(commstructnode.getUserId());
		packstring = packstringbuffer.toString();
		socketmanager.sendpacket(packstring,true);
	}
	
//	获取房间里所有坐下的用户信息
	public  PlayerStruct[] getPlayerInfo(){
		return player;
	}
	
	
	
//获取指定用户的游戏信息
	public CommStructNode getOtherUserInfo(){
		return otheruserinfo;
	}
	
	
	//获取指定用户的详细信息请求
	public void getPlayerDetail(String userid,String otheruserid){
		otheruserinfo.setUserId(otheruserid);
		StringBuffer packstringbuffer = new StringBuffer();
		packstringbuffer.append("000");
		packstringbuffer.append(UniversalDefine.DIVISION);
		packstringbuffer.append(MudleDefine.GOBANGMUDLE);
		packstringbuffer.append(UniversalDefine.DIVISION);
		packstringbuffer.append(GobangOperateId.otherinfo);
		packstringbuffer.append(UniversalDefine.DIVISION);
		packstringbuffer.append(userid);
		packstringbuffer.append(UniversalDefine.SUBDIVISION );
		packstringbuffer.append(otheruserid);
		packstring = packstringbuffer.toString();
		socketmanager.sendpacket(packstring,true);
	}
	
	//用户进入具体的游戏房间请求
	public void enterRoom(CommStructNode commstructnode){
		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.usercount);
		packstringbuffer.append(UniversalDefine.DIVISION);
		packstringbuffer.append(commstructnode.getUserId());
		packstring = packstringbuffer.toString();
		socketmanager.sendpacket(packstring,true);
	}
	
	
	//获取游戏大厅信息请求
	public void getHallInfo(MainGameEvent maingameevent){
		this.maingameevent = maingameevent;
		commstructnode = maingameevent.getCommNode();
		StringBuffer packstringbuffer = new StringBuffer();
		packstringbuffer.append("000");
		packstringbuffer.append(UniversalDefine.DIVISION);
		packstringbuffer.append(MudleDefine.GOBANGMUDLE);
		packstringbuffer.append(UniversalDefine.DIVISION);
		packstringbuffer.append(GobangOperateId.roomin);
		packstringbuffer.append(UniversalDefine.DIVISION);
		packstringbuffer.append(commstructnode.getUserId());
		packstringbuffer.append(UniversalDefine.SUBDIVISION );
		packstringbuffer.append(commstructnode.getRoomId());
		packstring = packstringbuffer.toString();
		socketmanager.sendpacket(packstring,true);		
	}
	
	//退出房间的请求
	public void getExitRoom(CommStructNode commstructnode){
		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.roomout);
		packstringbuffer.append(UniversalDefine.DIVISION);
		packstringbuffer.append(commstructnode.getUserId());
		packstringbuffer.append(UniversalDefine.SUBDIVISION );
		packstringbuffer.append(commstructnode.getRoomId());
		packstring = packstringbuffer.toString();
		socketmanager.sendpacket(packstring,true);
	}
	
	
	//用户坐下请求
	public void setSitRequest(String userid,String roomid,String tableid,String tableseq){
		otheruserinfo.setTableId(commstructnode.getTableid());
		otheruserinfo.setTableSeq((commstructnode.getTableSeq()+1)%2);
		StringBuffer packstringbuffer = new StringBuffer();
		packstringbuffer.append("000");
		packstringbuffer.append(UniversalDefine.DIVISION);
		packstringbuffer.append(MudleDefine.GOBANGMUDLE);
		packstringbuffer.append(UniversalDefine.DIVISION);
		packstringbuffer.append(GobangOperateId.usersit);
		packstringbuffer.append(UniversalDefine.DIVISION);
		packstringbuffer.append(userid);
		packstringbuffer.append(UniversalDefine.SUBDIVISION );
		packstringbuffer.append(roomid);
		packstringbuffer.append(UniversalDefine.SUBDIVISION );
		packstringbuffer.append(tableid);
		packstringbuffer.append(UniversalDefine.SUBDIVISION );
		packstringbuffer.append(tableseq);
		packstring = packstringbuffer.toString();
		socketmanager.sendpacket(packstring,true);
	}
	
	
	//用户站起请求
	public void setUpRequest(CommStructNode commstructnode){
		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.userup);
		packstringbuffer.append(UniversalDefine.DIVISION);
		packstringbuffer.append(commstructnode.getUserId());
		packstringbuffer.append(UniversalDefine.SUBDIVISION );
		packstringbuffer.append(commstructnode.getRoomId());
		packstringbuffer.append(UniversalDefine.SUBDIVISION );
		packstringbuffer.append(commstructnode.getTableid());
		packstringbuffer.append(UniversalDefine.SUBDIVISION );
		packstringbuffer.append(commstructnode.getTableSeq());
		packstring = packstringbuffer.toString();
		socketmanager.sendpacket(packstring,true);
	}
	
	//用户准备好请求
	public void setReadyRequest(CommStructNode commstructnode){
		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.userready);
		packstringbuffer.append(UniversalDefine.DIVISION);
		packstringbuffer.append(commstructnode.getUserId());
		packstringbuffer.append(UniversalDefine.SUBDIVISION );
		packstringbuffer.append(commstructnode.getRoomId());
		packstringbuffer.append(UniversalDefine.SUBDIVISION );
		packstringbuffer.append(commstructnode.getTableid());
		packstringbuffer.append(UniversalDefine.SUBDIVISION );
		packstringbuffer.append(commstructnode.getTableSeq());
		packstring = packstringbuffer.toString();
		socketmanager.sendpacket(packstring,true);
	}
	
//	用户开始请求
	public void setStartRequest(CommStructNode commstructnode){
		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.userstart);
		packstringbuffer.append(UniversalDefine.DIVISION);
		packstringbuffer.append(commstructnode.getUserId());
		packstringbuffer.append(UniversalDefine.SUBDIVISION );
		packstringbuffer.append(commstructnode.getRoomId());
		packstringbuffer.append(UniversalDefine.SUBDIVISION );
		packstringbuffer.append(commstructnode.getTableid());
		packstringbuffer.append(UniversalDefine.SUBDIVISION );
		packstringbuffer.append(commstructnode.getTableSeq());
		packstring = packstringbuffer.toString();
		socketmanager.sendpacket(packstring,true);
		
	}
	
	
	//用户走子
	public void setChess(CommStructNode commstructnode,int stepnum,int x,int y,int usercolor ){
		this.commstructnode = commstructnode;
		maingameevent.setCommNode(commstructnode);
		String seqnum = commstructnode.getRoomId()+commstructnode.getTableid();
		StringBuffer packstringbuffer = new StringBuffer();
		packstringbuffer.append("000");
		packstringbuffer.append(UniversalDefine.DIVISION);
		packstringbuffer.append(MudleDefine.GOBANGMUDLE);
		packstringbuffer.append(UniversalDefine.DIVISION);
		packstringbuffer.append(GobangOperateId.gaming);
		packstringbuffer.append(UniversalDefine.DIVISION);
		packstringbuffer.append(commstructnode.getUserId());
		packstringbuffer.append(UniversalDefine.SUBDIVISION );
		packstringbuffer.append(seqnum);
		packstringbuffer.append(UniversalDefine.SUBDIVISION );
		packstringbuffer.append(stepnum);
		packstringbuffer.append(UniversalDefine.SUBDIVISION );
		packstringbuffer.append(x);
		packstringbuffer.append(UniversalDefine.SUBDIVISION );
		packstringbuffer.append(y);
		packstringbuffer.append(UniversalDefine.SUBDIVISION );
		packstringbuffer.append(usercolor);
		packstring = packstringbuffer.toString();
		socketmanager.sendpacket(packstring,true);
		
	}
	
	//用户放弃下子
	public void UserGiveUp(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.usergiveup);
		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 UserRegret(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.userregret);
		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 AgreeOppRegret(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.oppregret);
		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 UserTie(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.usertie);
		packstringbuffer.append(UniversalDefine.DIVISION);

⌨️ 快捷键说明

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