棋牌游戏分流匹配需求文档

目录
修订控制
一、概述
1.名词说明
2.产品目标
3.产品Roadmap
二、整体流程和逻辑关系
三、功能模块和特性
1.功能1 分流机制
2.功能2 匹配原则
3.功能3 生成对局
4.功能4 马甲适配
5.功能5 积分适配
6.功能6 桌台排名适配
7.功能7 对局过程和结算
四、附录
名词说明

一、概述
本文档分别说明觅呱游戏的分流机制、匹配原则、马甲系统、机器人系统、马甲账号结算及以上功能点的联运。
1.产品目标
2.产品Roadmap
二、整体流程和逻辑关系

三、功能模块和特性
模块1 分流机制
按游戏分玩家池,例如蚌埠麻将玩家池、红中麻将玩家池…
只要玩家报名参加同一个游戏,玩家都会分配该游戏的玩家池;
功能需求1 <游戏名>玩家池
以游戏名区分玩家池。玩家参加不同的游戏,那么进入该游戏相对应的“玩家池”;

功能需求2 匹配列队
玩家进入“游戏玩家池”后,系统分配用户到“匹配列队”;
匹配成功后玩家状态变移出“匹配队列”并变更为“对局中”状态,该状态系统不会为用户匹配新的对局;
用户对局晋级后,玩家对局晋级后系统将用户移回“匹配列队”;
用户比赛结算后:
淘汰比赛结算,系统将该玩家移出该游戏的玩家池;
获胜比赛结算,系统将该玩家移出该游戏的玩家池;
超时比赛结算,系统将该玩家移出该游戏的玩家池;
用户对局晋级后系统检测玩家离开游戏,玩家状态为“暂离”,系统不会为其进行匹配对局:
30秒后玩家仍未回到游戏,系统对玩家做“比赛超时结算”并将该玩家移出该游戏的玩家池;;
30秒内玩家回到游戏,系统将玩家移回“匹配列队”并正常进行匹配;
例:

功能2 匹配原则
为玩家匹配实力相当的对手进行对局;
功能需求1 优先原则
天梯分相同的玩家,优先匹配更早进入匹配列队的玩家;
功能需求2 时限原则
从用户进入匹配列队开始,15秒内匹配真实玩家;
15秒内未匹配到真实玩家,15秒后匹配对应该玩家天梯分的机器人;
功能需求3 补充规则
以最先匹配到的玩家的天梯分为标准,取其天梯分+/-差值不大于200分的玩家;
如果匹配尚未完成时该用户就退出了游戏,那么该用户托管并继续匹配;
功能需求4 实力原则
第1~1秒,|天梯分差值|<50;
第2~4秒,|天梯分差值|<100;
第5~9秒,|天梯分差值|<150;
第10~14秒,|天梯分差值|<200;
第15秒,匹配机器人β;
备注:对局最先发起人的天梯分-要匹配的玩家=天梯分差值;
机器人型号
机器人α
托管时使用的机器人,该机器人只会打出最近摸到的拍,不会主动吃、碰、杠。能胡则胡;
机器人β
匹配时真人玩家不足,系统匹配该类型机器人。机器人会主动吃、碰、杠、胡。机器人优先打出散牌,其次打出11、再次打出123、最后打出111;
机器人π
高智能机器人,能够主动从剩余牌桌中抓出需要的牌;

功能3 生成对局
根据匹配原则匹配四个玩家,匹配完成并获取每个真实玩家的信息,分别生成相应对局。
功能需求1 获取匹配到的玩家信息
获取每位真实匹配到的玩家以下信息:
用户昵称
比赛模式
本次对局轮数
当前积分
匹配顺序
功能需求2 生成赛场信息
当玩家为锦标赛时,套用锦标赛桌台、输赢记积分、对局结算积分前两名晋级;
作为顺序,按照匹配到的时间排序;

功能4 马甲适配
为更好的游戏体验,生成对局为除玩家外所有玩家披上马甲再行落座;
功能需求1 马甲适配
主角不适配马甲,使用真实信息;
非主角玩家,适配马甲再落座:
如果主角当前的对局为决赛,那么系统首先调用上轮与主角一起晋级的马甲入场(优先级1);
其他两位玩家随机匹配马甲;
如果主角当前的对局非决赛,那么系统随机匹配马甲给玩家;
功能需求2 马甲适配优先级
匹配未与主角匹配过的马甲(优先级2);
匹配近10场未与玩家匹配过得马甲(优先级3);

功能5 积分适配
玩家匹配马甲后,根据主角的轮数为玩适配积分;
功能需求1 主角分数适配
主角使用真实分数;
主角在第一轮的时候,积分为0;
主角当前轮数非第一轮的时候,使用上轮对局积分*0.5作为本轮对局的积分;
功能需求2 其他马甲分数适配
当主角为第一轮时,所有马甲积分显示为0;
当主角为第二轮时, ;
当主角为第三轮时,所有马甲积分取值为-300~900;
当主角为第四轮时,所有马甲积分取值为-350~1050;
当主角为第五轮时,所有马甲积分取值为-375~1125;
当主角为第六轮时,与主角一起晋级的马甲分数为“上轮对局结算*0.5”;
其他马甲积分取值-386~1163;

功能6 桌台排名适配
为主角适配桌台上显示的排名;
功能需求1 桌台排名
当主角对局轮数为1时,桌台排名显示为128;
注释:n,轮数;Pn第N轮桌台排名。L,赛场总人数;
当主角对局轮数为最后一句时,根据最后一轮开局时的各玩家分数值大小排序;

功能7 对局过程和结算
对局生成后,玩家开始进行对战;
功能需求1 对局中
匹配到一起的玩家,各自生成自己的对局;
每个用户的视角都是独立的,对局中的打法一致,但是根据底分(1倍/10倍...)、输赢内容(金币/对局积分)、轮数和比赛模式(自由赛/锦标赛)的不同,该用户视角看到的和其他人看到的因此出现差异;
此外,
结算页面也是单独的,结算时,每位玩家根据自己视角中“对局结算积分”数值的大小决定是否晋级(自由赛为胡牌达成连胜);
由于开局积分随机的原因,故B在自己为主角的对局中看到自己淘汰了,但是在A为主角的对局中,A看到的是B使用的马甲与自己一起晋级;
如果马甲获得奖励,那么系统并不会发放;
