社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Git

云原生项目实践DevOps(GitOps)+K8S+BPF+SRE,从0到1使用Golang开发生产级麻将游戏服务器—第7篇

为少 • 3 年前 • 257 次点击  
阅读 15

云原生项目实践DevOps(GitOps)+K8S+BPF+SRE,从0到1使用Golang开发生产级麻将游戏服务器—第7篇

空血来战玩法 & 游戏规则篇

空血来战使用纯正的四川麻将玩法,分为三人模式和四人两种模式,三人模式<三人两房>只用子和子两种花色共72张牌,游戏节奏更快,对战更激烈。四人模式<血战到底>使用 三种花色共108张牌,开局选择定缺花色,未打缺不能胡牌。

系列文章

  1. Golang开发生产级麻将游戏服务器—第1篇
  2. Golang开发生产级麻将游戏服务器—第2篇
  3. Golang开发生产级麻将游戏服务器—第3篇
  4. Golang开发生产级麻将游戏服务器—第4篇
  5. Golang开发生产级麻将游戏服务器—第5篇
  6. Golang开发生产级麻将游戏服务器—第6篇

介绍

这将是一个完整的,完全践行 DevOps/GitOpsKubernetes 上云流程的 Golang 游戏服务器开发的系列教程。

这个系列教程是对开源项目 Nanoserver 的完整拆解,旨在帮助大家快速上手 Golang(游戏)服务器后端开发。通过实践去理解 Golang 开发的精髓 —— Share memory by communication(通过通信共享内存)

同时这个项目可能还会涉及到 Linux 性能调优(BPF 相关的工具)和系统保障(SRE)的相关的工作。

Step-By-Step 开发 Mahjong Server

  • 单体架构理解 Mahjong Server 业务 -> Nano Distributed Game Server(分布式) + 微服务 改造。
  • Demo:go-mahjong-server

游戏规则

  1. 三人模式<三人两房>使用子、子两种花色牌共72张。
  2. 三人模式大于1倍低分才可点炮胡(平胡点炮需选择<点炮可平胡>)。
  3. 四人模式<血战到底>使用 三种花色共108张牌。
  4. 玩家胡牌后,其余玩家继续游戏,直到流局或只有一位玩家未胡牌为止。
  5. 流局时查大叫,即无叫玩家需要按最大番数赔付有叫玩家。
  6. 上一局先胡牌玩家下一局当庄,如果一炮多响,点炮玩家为庄。
  7. 自摸加低(如果勾选自摸加番,则加番)。
  8. 牌局中按照创建房间时选择的番数封顶(345番)。

术语解释

  1. 刮风下雨
    • 若为引杠(手中有三张相同的牌,有人打出第四张),则向引杠者低番X2的水钱。
    • 若为巴杠(已经碰牌后,自己摸出第四张并杠牌),则向每个未胡牌的玩家收取低番X1的水钱,以上两种为刮风
    • 若玩家为暗杠(自己摸出四张牌并杠牌),则向每个未胡牌的玩家收取低番X2的水钱,此时称为下雨。
    • 若结算时没有胡牌,且没有叫,则刮风下雨不算。
  2. 血战到底:一家胡牌后,游戏继续进行,直到仅剩一家未胡牌或者流局。
  3. 杠上花、杠上炮、呼叫转移、抢杠
    • 杠上花:杠牌后自摸,弯杠和暗杠时,其余未胡牌的玩家都会扣分
    • 杠上炮:杠牌后点炮
    • 呼叫转移:开杠后点炮,杠钱一并转移给接炮的玩家
    • 抢杠:巴杠时的牌被其他人胡了,称为抢杠,抢杠胡牌后,不能巴杠
  4. 查叫:若有两人或两人以上玩家没有胡牌,则要进行查叫。
  5. 退税:查叫时,没叫玩家需要退回所有刮风下雨所得的收入。

胡牌类型

  1. 平胡(0番):四砍(除四副刻子)加一对将。
  2. 对对胡(1番或2番):4副刻子加一对将。
  3. 清一色(2番):全是一种花色的平胡。
  4. 清对(3番或4番):清一色加对对胡。
  5. 七对(2番):玩家手上全是对子,没有碰和刮风下雨。
  6. 龙七对(3番):手上全是对子,且只有一个根,没有碰和刮风下雨。
  7. 清七对(4番):清一色+七对。
  8. 清龙七对(5番):清一色+龙七对。
  9. 全幺九(3番):所有组成的顺子、刻子、将牌中都包含19
  10. 将对(3番或4番):只包含2/5/8的对对胡。
  11. 将七对(5番):只包含2/5/8的龙七对。
  12. 门清(1番):只包含2/5/8的龙七对。
  13. 中张(1番):胡牌时,不包含1/9的牌。
  14. 夹心五(1番):胡牌时,牌型可以摆成46夹一个5

番计算

  1. =低分x2 例如:低金为1分,2番=1*2*2=4分,3番=1*2*2*2=8
  2. 基本输(赢)积分=牌型积分+刮风下雨+自摸加番(自摸加番算在总番中)
  3. 点炮结算方式为1对1,自摸结算为一对多
  4. 另加番:
    • :+1番(所有牌中有4张一样的牌,无论是否碰、杠),可累计计算
    • 杠上花:+1番
    • 杠上炮:+1番
    • 抢杠胡:+1番
    • 海底捞:+1番
    • 金钩胡:+1番

备注:各个牌型不重复计算,只收取最大番

我是为少
微信:uuhells123
公众号:黑客下午茶
加我微信(互相学习交流),关注公众号(获取更多学习资料~)
复制代码
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/108483
 
257 次点击