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

空血来战玩法 & 游戏规则篇
空血来战使用纯正的四川麻将玩法,分为三人模式和四人两种模式,三人模式<三人两房>只用条子和筒子两种花色共72张牌,游戏节奏更快,对战更激烈。四人模式<血战到底>使用 筒 条 万三种花色共108张牌,开局选择定缺花色,未打缺不能胡牌。
系列文章
- Golang开发生产级麻将游戏服务器—第1篇
- Golang开发生产级麻将游戏服务器—第2篇
- Golang开发生产级麻将游戏服务器—第3篇
- Golang开发生产级麻将游戏服务器—第4篇
- Golang开发生产级麻将游戏服务器—第5篇
- Golang开发生产级麻将游戏服务器—第6篇
介绍
这将是一个完整的,完全践行 DevOps/GitOps 与 Kubernetes 上云流程的 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
游戏规则
三人模式<三人两房>使用筒子、条子两种花色牌共72张。三人模式大于1倍低分才可点炮胡(平胡点炮需选择<点炮可平胡>)。四人模式<血战到底>使用筒条万三种花色共108张牌。- 玩家胡牌后,其余玩家继续游戏,直到
流局或只有一位玩家未胡牌为止。 流局时查大叫,即无叫玩家需要按最大番数赔付有叫玩家。- 上一局先胡牌玩家下一局
当庄,如果一炮多响,点炮玩家为庄。 自摸加低(如果勾选自摸加番,则加番)。- 牌局中按照创建房间时选择的番数封顶(
3、4、5番)。
术语解释
刮风、下雨- 若为
引杠(手中有三张相同的牌,有人打出第四张),则向引杠者低番X2的水钱。 - 若为
巴杠(已经碰牌后,自己摸出第四张并杠牌),则向每个未胡牌的玩家收取低番X1的水钱,以上两种为刮风。 - 若玩家为
暗杠(自己摸出四张牌并杠牌),则向每个未胡牌的玩家收取低番X2的水钱,此时称为下雨。 - 若结算时没有胡牌,且没有叫,则刮风下雨不算。
- 若为
- 血战到底:一家胡牌后,游戏继续进行,直到仅剩一家未胡牌或者流局。
- 杠上花、杠上炮、呼叫转移、抢杠
杠上花:杠牌后自摸,弯杠和暗杠时,其余未胡牌的玩家都会扣分杠上炮:杠牌后点炮呼叫转移:开杠后点炮,杠钱一并转移给接炮的玩家抢杠:巴杠时的牌被其他人胡了,称为抢杠,抢杠胡牌后,不能巴杠
查叫:若有两人或两人以上玩家没有胡牌,则要进行查叫。退税:查叫时,没叫玩家需要退回所有刮风下雨所得的收入。
胡牌类型
平胡(0番):四砍(除四副刻子)加一对将。对对胡(1番或2番):4副刻子加一对将。清一色(2番):全是一种花色的平胡。清对(3番或4番):清一色加对对胡。七对(2番):玩家手上全是对子,没有碰和刮风下雨。龙七对(3番):手上全是对子,且只有一个根,没有碰和刮风下雨。清七对(4番):清一色+七对。清龙七对(5番):清一色+龙七对。全幺九(3番):所有组成的顺子、刻子、将牌中都包含1或9。将对(3番或4番):只包含2/5/8的对对胡。将七对(5番):只包含2/5/8的龙七对。门清(1番):只包含2/5/8的龙七对。中张(1番):胡牌时,不包含1/9的牌。夹心五(1番):胡牌时,牌型可以摆成4和6夹一个5。

番计算
番=低分x2例如:低金为1分,2番=1*2*2=4分,3番=1*2*2*2=8分- 基本输(赢)积分=
牌型积分+刮风下雨+自摸加番(自摸加番算在总番中) - 点炮结算方式为1对1,自摸结算为一对多
- 另加番:
根:+1番(所有牌中有4张一样的牌,无论是否碰、杠),可累计计算杠上花:+1番杠上炮:+1番抢杠胡:+1番海底捞:+1番金钩胡:+1番
备注:各个牌型不重复计算,只收取最大番。
我是为少
微信:uuhells123
公众号:黑客下午茶
加我微信(互相学习交流),关注公众号(获取更多学习资料~)

浙公网安备 33010602011771号