棋牌游戏座位算法

1、以麻将为例
玩家A、B、C、D 座位如下
         C 2
D 3          B1
        A 0

首先获取所有玩家的服务器位置:Index = 0,1,2,3
加入现在是B的视角
则:移位 = B.index 1 - 0 = 1 ,说明移动一个位置
新座位的序号:
B = B.index - 移位 = 1-1 = 0
C = C.index - 移位 = 2-1 = 1
D = D.index - 移位 = 3-1 = 2
A = A.index - 移位 = 0 - 1 = -1,如果是负数,则+总人数4:-1+4=3

同理:C的视角
移位= C.index 2-0 = 2

C = C.index - 移位 = 2-2 = 0
D = D.index - 移位 = 3-2 = 1
A = A.index - 移位 = 0 - 2 = -2,如果是负数,则+总人数4:-2+4=2
B = B.index - 移位 = 1 - 2 = -1,如果是负数,则+总人数4:-1+4=3


同理:D的视角
移位= D.index 3-0 = 3
D = D.index - 移位 = 3 - 3 = 0
A = A.index - 移位 = 0 - 3 = -3,如果是负数,则+总人数4:-3+4=1
B = B.index - 移位 = 1 - 3 = -2,如果是负数,则+总人数4:-2+4=2
C = C.index - 移位 = 2 - 3 = -1,如果是负数,则+总人数4:-1+4=3

2、斗地主位置算法同理
C 2                 B    1
             A0

首先获取所有玩家的服务器位置:Index = 0,1,2
加入现在是B的视角
则:移位 = B.index 1 - 0 = 1 ,说明移动一个位置
新座位的序号:
B = B.index - 移位 = 1-1 = 0
C = C.index - 移位 = 2-1 = 1
A = A.index - 移位 = 0 - 1 = -1,如果是负数,则+总人数3:-1+3=2

同理:C的视角
移位= C.index 2-0 = 2
C = C.index - 移位 = 2 - 2 = 0
A = A.index - 移位 = 0 - 2 = -2,如果是负数,则+总人数3:-2+3=1
B = B.index - 移位 = 1 - 2 = -1,如果是负数,则+总人数3:-1+3=2

 

 

来源:https://bbs.egret.com/thread-47694-1-1.html

转载于:https://www.cnblogs.com/gao88/p/11371418.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值