(景德镇)麻将规则服务描述

麻将规则引擎    Communication {<-, ->}; Notification {<=, =>} 

玩家(P)        <=>        规则引擎(RE)
                    RE{定庄,定宝,发牌}
P: 游戏桌初始化 <=
P(庄家):抓牌(补)    -> RE:计算状态{胡, 听}

P: 出牌                -> RE:计算状态{碰杠吃胡}
P: 状态更新{碰杠吃胡}<=

P: 吃一张            -> RE:计算状态{听}
 > 出牌                -> RE:计算状态{碰杠吃胡}
P: 状态更新{碰杠吃胡}<=

P: 碰一张            -> RE:计算状态{听}
 > 出牌                -> RE:计算状态{碰杠吃胡}
P: 状态更新{碰杠吃胡}<=

P: 杠牌                -> RE:
 > 补牌                -> RE:计算状态{胡, 听}
 > 出牌                -> RE:计算状态{碰杠吃胡}
P: 状态更新{碰杠吃胡}<=

P: 抓牌(摸)            -> RE:计算状态{胡, 听}
P: 出牌                -> RE:计算状态{碰杠吃胡}
P: 状态更新{碰杠吃胡}<=

P: 胡牌                -> RE:结算
P: 游戏结束  <=

四人桌,庄家,循右次序,形成逆时针出牌顺序
操作优先级:胡>杠(补),碰>吃(上家)>摸

原文地址:https://www.cnblogs.com/qianwen36/p/4430108.html