zoukankan      html  css  js  c++  java
  • 棋牌游戏座位算法

    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

  • 相关阅读:
    Charles截获iPhone网络请求
    android小Demo--圆球跟随手指轨迹移动
    《腾讯网UED体验设计之旅》读后感
    eatwhatApp开发实战(十四)
    [Unity2d系列教程] 006.Unity如何根据图片自动生成Animator
    [Unity2d系列教程] 005.Unity如何使用外部触控插件FingerGuesture
    eatwhatApp开发实战(十三)
    微服务平台技术架构
    Istio 流量劫持过程
    Istio 组件常用端口
  • 原文地址:https://www.cnblogs.com/gao88/p/11371418.html
Copyright © 2011-2022 走看看