您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > 网络斗地主服务端项目文档
安卓组开发项目文档安卓项目组2012/01/06V1.0网络斗地主服务端项目文档网络斗地主项目组-2012/01/061文档版本记录版本号修改日期作者更改说明V1.02012/01/06史进鹏文档创建网络斗地主服务端项目文档网络斗地主项目组-2012/01/0620阅读说明黑色粗体表示需要重点阅读,蓝色代表MINA框架类的方法,红色代表类名。文档分4个部分:(1)1-5牌类游戏服务端基类;(2)6-8继承第一部分基类,定义斗地主游戏服务端主要的类,并在这些类中定义了处理消息队列线程需要的方法(3)9-12定义第二部分类的数据管理13数据库数据初始化到内存的方法类(4)服务端交互部分,14-19是MINA服务端监听接收,发送,编解码;20-23创建4个线程对交互数据的处理;24-27定义把不同的协议归成属于哪些服务类,规范处理。1房间Room类(1)属性房间名称、房间类型、房间内桌子的数量、房间内的桌子列表、房间内的在线人数(2)方法a构造方法:构造器默认构造b获取房间名称方法参数:无返回值:房间名称c设置房间名称方法参数:房间名称返回值:无d获取房间类型方法注释:获取房间类型(如:新手场、中级场、高级随意配桌)参数:无返回值:房间类型e设置房间类型方法参数:房间类型返回值:无f获取房间内桌子数量的方法参数:无网络斗地主服务端项目文档网络斗地主项目组-2012/01/063返回值:房间内桌子的数量g设置房间内桌子数量的方法参数:桌子的数量返回值:无h获取房间内桌子列表的方法参数:无返回值:房间内桌子列表i设置房间内桌子列表的方法参数:桌子的列表返回值:无j获取房间内在线人数的方法参数:无返回值:房间内的在线人数k设置房间内在线人数的方法参数:在线人数返回值:无l进入房间时添加在线人数的方法注释:进入房间添加在线人数,并且同一时间只能有一个线程执行此操作(synchronized修饰)参数:无返回值:无m退出房间时减少在线人数注释:退出房间减少在线人数,并且同一时间只能有一个线程执行此操作(synchronized修饰)参数:无返回值:无n自动分配到桌子方法(子类中会实现)注释:为玩家自动分配到一张桌子参数:一个玩家的对象返回值:分配到的桌子(null)2桌子Table类(1)属性桌子所属房间ID、桌子名称(现在没用后面可能会用到)、桌子ID、桌子当前用户数、网络斗地主服务端项目文档网络斗地主项目组-2012/01/064桌子允许的最大用户数、桌子状态、用户列表(考虑用户数量不确定性用vector)、消息队列(2)方法a构造方法:构造器默认构造b设置桌子所属房间的方法注释:就是设置所在房间的房间类型,是新手场,中级场还是其他类型房间。参数:房间ID返回值:无c获取桌子所属房间的方法注释:可在斗地主桌子类的换桌方法中使用,使玩家只能在同一房间内换桌参数:无返回值:得到桌子所属房间的IDd设置桌子名称的方法注释:在初始化桌子信息时把桌子名称设置成桌子ID的字符串参数:桌子名称返回值:无e获取桌子名称的方法参数:无返回值:得到桌子名称f设置桌子ID的方法参数:桌子ID返回值:无g获取桌子ID的方法注释:用于在玩家成功进入桌子后,发送消息告诉玩家进入的是几号桌子参数:无返回值:得到桌子IDh设置桌子用户数的方法注释:只为当玩家退出或者进入桌子时要设置一下桌子的当前用户数,私有方法。进入和退出桌子的方法已经加了线程保护synchronized,所以此方法就不用加线程保护。参数:桌子用户数返回值:无i获取桌子用户数的方法网络斗地主服务端项目文档网络斗地主项目组-2012/01/065注释:在斗地主桌子类中给玩家找桌子的方法中会用到,主要配合方法k判断当前桌子玩家数有没有满参数:无返回值:得到桌子用户数j设置桌子允许最大用户数的方法注释:在初始化桌子信息时,可根据游戏不同传入不同的参数参数:桌子允许最大用户数返回值:无k获取桌子允许最大用户数的方法注释:主要用来判断当前桌子玩家数有没有满参数:无返回值:得到桌子允许最大用户数l设置桌子状态的方法注释:如准备中、叫分中、玩牌中参数:桌子的状态返回值:无m获取桌子状态的方法参数:无返回值:得到桌子的状态n设置桌子用户列表的方法注释:在桌子初始化时,给每个桌子加一个包含三个空对象的用户列表参数:桌子的用户列表返回值:无o获取桌子用户列表的方法注释:得到一个桌子的用户列表,便于遍历桌子中的每个玩家参数:无返回值:得到桌子的用户列表p设置桌子消息队列的方法注释:初始化桌子信息时,每个桌子对象都会new一个消息队列,所以这个方法一般不会用到参数:桌子的消息队列返回值:无q获取桌子消息队列的方法网络斗地主服务端项目文档网络斗地主项目组-2012/01/066注释:获取到桌子的消息队列,可使用队列的add方法添加消息。参数:无返回值:得到桌子的消息队列r将收到的消息加入到桌子的消息队列中注释:将消息加入到桌子的消息队列中,会被处理所有桌子消息队列的线程MessageThread处理参数:消息类型、消息对象返回值:无实现过程:1创建一个消息队列单元类型MessageUnit的对象unit2把参数消息类型和消息对象打包到unit中3调用方法q得到消息队列对象,用消息队列对象的添加方法,把unit添加到消息队列中s给桌子的玩家列表中的每个玩家发送消息的方法参数:消息类型、消息对象返回值:无t玩家进入桌子的处理(同一时刻只能有一个线程执行此操作)注释:被斗地主房间类中找桌子的方法调用(找桌子的方法是先找有2人的桌子,再找有1人的桌子,最后找无人的桌子)参数:玩家对象返回值:是否进入成功实现过程:传入一个玩家对象,判断桌子是否有空位(被找桌子的方法调用时此判断无用),有空位则遍历桌子用户列表中为空的玩家给替换掉进入成功,否则进入失败u玩家退出桌子的处理(同一时刻只能有一个线程执行此操作)注释:玩家退出桌子后对桌子的处理参数:玩家对象返回值:无实现过程:遍历桌子的玩家列表,取得每个玩家的用户名与参数的用户名比较,把相同的置空,减少桌子的用户数v进入桌子所属的房间注释:玩家进入桌子所属的房间后的处理参数:无返回值:无实现过程:通过方法b获取得到桌子所属的房间ID,来增加当前房间的人数网络斗地主服务端项目文档网络斗地主项目组-2012/01/067w退出桌子所属的房间:注释:玩家退出桌子所属的房间后的处理参数:用户名返回值:无实现过程:通过方法b获取得到桌子所属的房间ID,来减少当前房间的人数并且移除此用户x开始游戏:注释:在子类中会被重写,暂无定义参数:无返回值:无y结束游戏:注释:在子类中会被重载,暂无定义参数:无返回值:无z同步信息:注释:在子类中会被重载,暂无定义参数:无返回值:nullaa超时处理:注释:在子类中会被重写,暂无定义参数:无返回值:无3玩家Player类(1)属性用户名、玩家交互、所属的桌子(可能没有桌子),用户ID,昵称(2)方法a构造方法:构造器默认构造b发送给当前玩家消息的方法注释:在子类中会被重载,暂无定义参数:无返回值:无c设置当前用户名的方法网络斗地主服务端项目文档网络斗地主项目组-2012/01/068注释:设置当前用户名参数:用户名返回值:无d获取当前用户名的方法注释:获取当前用户名参数:无返回值:用户名e设置当前玩家交互的方法注释:设置当前玩家的交互参数:用户交互实例(被服务端用来识别用户)返回值:无f获取当前用户交互的方法注释:获取当前玩家交互实例参数:无返回值:当前玩家交互实例g设置当前用户所在的桌子方法注释:设置当前用户所在的桌子参数:当前用户所在的桌子返回值:无h获取当前用户所在的桌子的方法注释:获取当前用户所在的桌子参数:无返回值:用户所在的桌子i设置当前用户ID的方法注释:标记客户端,服务端数据也应该以此为用户信息表的主键参数:当前用户ID返回值:无j获取当前用户ID的方法注释:标记客户端,服务端数据也应该以此为用户信息表的主键参数:无返回值:用户ID网络斗地主服务端项目文档网络斗地主项目组-2012/01/069k设置当前用户昵称的方法参数:当前用户ID返回值:无l获取当前用户昵称的方法参数:无返回值:用户ID4牌Card类(1)属性面值、花色、权值(2)方法a构造方法1注释:初始化牌的面值、花色和权值(权值默认初始化为1)参数:数值、花色返回值:无b构造方法2注释:初始化牌的面值、花色和权值(按传入的参数初始化权值)参数:数值、花色、权值返回值:无c获取牌面值的方法注释:获取牌的面值参数:无返回值:面值d获取牌花色的方法注释:获取牌的花色参数:无返回值:花色e获取牌权值的方法注释:获取牌的权值参数:无返回值:权值网络斗地主服务端项目文档网络斗地主项目组-2012/01/0610f设置牌权值的方法注释:设置牌的权值参数:权值返回值:无5牌组CardArray类(1)属性牌组中牌的张数、牌对象的数组、牌组的权值(2)方法a构造方法1注释:初始化牌的张数、牌对象的数组、牌组的权值(牌组权值默认初始化为1)参数:牌组中牌的张数、牌对象的数组返回值:无b构造方法2注释:初始化牌的张数、牌对象的数组、牌组的权值(按传入的参数初始化牌组的权值)参数:牌组中牌的张数、牌对象的数组、牌组的权值返回值:无3构造方法3注释:初始化牌的张数、牌对象的数组、牌组的权值(按传入的参数初始化牌组的权值)参数:牌对象返回值:无c构造方法4注释:初始化牌的张数、牌对象的数组、牌组的权值(牌组权值默认初始化为1)参数:无返回值:无d获取牌组中牌的张数方法注释:获取牌组中牌的张数参数:无返回值:牌组中牌的张数e获取一个排序后的全部数值数组1注释:获取一个排序后的全部数值数组(默认按照面值递增排序)网络斗地主服务端项目文档网络斗地主项目组-2012/01/0611参数:无返回值:一个排序后的牌组f获取一个排序后的全部数值数组2注释:获取一个排序后的全部数值数组(按照传入参数方式排序)参数:排序方式(面值正排序1、面值逆排序2、权值大小正排序3或权值大小逆排序4)返回值:一个排序后的数值数组g添加牌对象1注释:添加牌对象参数:牌对象返回值:一个添加后的牌组h添加牌对象2注释:添加牌对象的数组参数:牌对象的数组返回值:一个添加后的牌组i删除牌对象1注释:删除牌对象参数:牌对象返回值:删除后的数值数组j删除牌对象2注释:删除牌对象的数组参数:牌对象的数组返回值:删除后的数值数组k比较面值是否相同1注释:比较数值是否相同参数:牌对象返回值:是否相同l比较面值是否相同2注释:比较数值是否相同参数:牌对象的数组返回值:是否相同m比较数值是否相同3网络斗地主服务端项目文档网络斗地主项目组-2012/01/0612注释:比较数值是否相同参数:牌组类的对象返回值:是否相同n比较数值是否包含1注释:比较牌对象数值是否包含参数:牌对象返回值:是否包含o比较数值是否包含2注释:比较牌对象的数组的数值是否包含参数:牌对象的数组返回值:是否包含p比较数值是否包含3注释:比较牌类对象的数值是否包含参数:牌组对象返回值:是否包含q是否清一色注释:比较牌对象是否相同花色参数:无返回值:是、否r获取牌组对象的权值注释:获取牌组对象的权值参数:无返回值:牌组对象的权值s设置牌组对象的权值注释:设置牌组对象的权值参数:无返回值:无t比较牌组对象权值的大小注释:比较牌组对象权值的大小参数:要比较的牌组对象的权值返回值:1(大于)、0(等于)、-1(小于)网络斗地主服务端项目文档网络斗地主项目组-2012/01/0613//斗地主游戏框架6斗地主房间RoomDdz3类继承Room类(1)属性房间底注(2)方法a构造方法:构造器默认构造b设置斗地主房间底注的方法注释:设置斗地主房间底注参数:要设置的底注的值返回值:无c获取斗地主房间底注的方法注释:获取斗地主房间底注参数:无返回值:房间底注d重写父类自动分配桌子的方法注释:给玩家找到一个有位置的桌子,先找已经有2人的桌子,如果没有再找已经有1人的桌子,如果没有再找已经有0人的桌
本文标题:网络斗地主服务端项目文档
链接地址:https://www.777doc.com/doc-1601066 .html