TJMJ – 桃江经典王麻将(个人娱乐版)
【项目介绍】 湖南桃江人打的经典王麻将TJMJ,仅供家人朋友娱乐学习使用。目前市面上仅有闲逸app有益阳麻将玩法(但是其需要登陆;界面繁琐;玩法和桃江麻将不完全一致;且缺少拖拽手牌、实时语音和打字聊天等功能)。于是设计开发一款和桃江麻将玩法高度一致的TJMJ(包含扎鸟、打筛扳王、开杠摸三张、各种门子胡法、加番规则等): 以链接的形式点击直接进入房间,只开一桌麻将(4人);表情功能;可以进行语音交互;增加观战模式(一次只能选择一方); 在基础上训练mahjong agent(NPC),大家可以学习NPC打法提升麻将技术!
尝试了微信开发者工具(.js + .wxml + this.setData)但小游戏类(尤其棋牌类)需要备案,且暂不对个人开放; cocos dashboard入门慢开发效率低,时间精力不足;
参考方案: https://gitee.com/mirrors/OpenMajiang#cordova 和 http://cdn0001.afrxvk.cn/whmj/go.html
由于个人全栈开发一套完整且稳定的TJMJ比较麻烦,在TJMJ的基础框架和功能完成后,将交由其他developers进行二次开发和维护,最后祝大家玩的开心!
【【!!!后端逻辑!!!】】
【打筛扳王&摸牌发牌规则】 赢的庄家打筛,从庄家面前开始数筛子点数和(庄家是1,下家2、对家3、上家4、回到庄家5……依次类推,庄家1 5 9,下家2 6 10,对家3 7 11,上家4 8 12) 数到的那一家面前的牌堆的右手边开始往左数数,空掉两个筛子中最小的数,庄家从这里开始抓牌。 抓牌规则是从庄家开始每个人分别抓三码(一码就是两叠,一叠就是2,一共4张牌)后,四家手里都有3*4=12张牌;然后收庄,每家抓1张牌后,四家各有13张手牌,庄家再抓1张(此时只有庄家手里有14张,其他三家手里是13张),庄家回合开始出牌,游戏开始(回合逆时针进行) 【打筛扳王(癞子)】 数到的那一家的下家面前的牌堆的左手边开始往右数数,从第一叠麻将(为1)数到两个筛子中最大的数停止,扳开这叠最上面的麻将,这个麻将就是“地”,这个麻将的数字+1就是“天”(癞子)(如果扳开的是9,那癞子就是1)
【吃碰杠胡】 吃:只能吃上家;如果同一花色,上家打来的和自己手牌中的两张牌刚好能组成“一句话”(比如,上家打来4,你手里有23或者35或者56,你就可以吃) 碰:任何一家打出一张手牌,如果你手里有两张相同的牌,你都可以选择碰! 杠:手里有四张相同的牌,并且除了这四张牌已经“报听”就可以开杠,开杠的规则是重新掷筛子,打出的点数从牌堆中末尾为1开始数数,数到筛子的点数那里抽3张牌,有要胡的牌就胡,没有的画依次从听牌的下家开始要牌,能胡就胡了; 明杠&暗杠 抢杠规则:如果是明杠,开杠的牌如果正好是其他玩家要胡的牌,直接判输全赔一家(相当于抓炮) 优先级:点炮(胡)>碰(杠)>吃
【胡法规范与计分规则】 每个玩家初始0分,每一局底分为1分
所有胡法与获得分数为为: 【基本胡法】 一对“将”(必须是一对2或者一对5或者一对8,三种花色都可以)+“四句话”(“一句话”可以是三张相同的牌,比如:111、555、777……;也可以是三张连续的牌,比如:123、456、789……) 平胡(1倍,共得3分):手牌里有“王”,14张手牌可以构成 硬庄(2倍,共得6分):手牌里无“王”
📐门子胡法 诈 胡;牌局结束,开始下一句,由诈胡方当庄家 黑天胡:对局首轮14张手牌中:无“王”,无“将”(任何花色的“2、5、8”),无“一句话”(任何牌都不能构成111或者123的形式) 地 胡:摸到三张“地”,需要轮到你的回合,摸一张可以直接胡牌结束 天 胡:手牌里有3个“王”,并且“王”任作之后能组成一对+四句话 天天胡:手牌里有4个“王”,并且“王”任作之后能组成一对+四句话 碰碰胡:一对+四句话都要是“AAA”的形式,比如AA+BBB+CCC+DDD+EEE,有王可以抓炮 清一色:手牌全部是同一花色(可以有“王”),可以抓炮 七小对:手牌14张可以组成7个对子,“AA+BB+CC+DD+EE+FF+GG”的形式,有王可以抓炮(除了天胡七小对) 将将胡:手牌14张全部是由“将”“258”组成,有王可以抓炮 起手胡:首轮,庄家14张手牌能直接胡 硬 庄:手牌无王,可以抓炮 开 杠:分明杠和暗杠。暗杠:手中有四张相同的牌,不用亮出来,除去这四张牌听牌后,可以选择开杠打筛摸三张,如果其中有一张牌能胡则胡,否则依次下家开始胡这三张,若有人胡则庄家得多少出多少给这一家;若都不能胡则弃入牌堆 地胡带拖:摸到三张“地”不选择胡,选择三张“地”作为“一句话”使用(相当于平胡1+地胡2=3倍) 起手报听:开局摸牌前,除庄家,其他三家起手13张只差“一个将”或者“一句话”,有王可以抓炮 天胡七小对: 天胡杠上花: 硬庄将将胡:
诈 胡:赔三家,看牌型情况应得多少赔多少 黑天胡:2番。赢家扎鸟扎一家得8,扎鸟全中得12;输家未扎中出2,扎中出4 地 胡:2番。赢家扎鸟扎一家得8,扎鸟全中得12;输家未扎中出2,扎中出4 天 胡:1+2=3番。赢家扎鸟扎一家得12,扎鸟全中得18;输家未扎中出3,扎中出6 天天胡:1+2+2=5番。赢家扎鸟扎一家得20,扎鸟全中得30;输家未扎中出5,扎中出10 碰碰胡:2番。赢家扎鸟扎一家得8,扎鸟全中得12;输家未扎中出2,扎中出4 清一色:2番。赢家扎鸟扎一家得8,扎鸟全中得12;输家未扎中出2,扎中出4 七小对:2番。赢家扎鸟扎一家得8,扎鸟全中得12;输家未扎中出2,扎中出4 将将胡:2番。赢家扎鸟扎一家得8,扎鸟全中得12;输家未扎中出2,扎中出4 起手胡:2番。赢家扎鸟扎一家得8,扎鸟全中得12;输家未扎中出2,扎中出4 开 杠:2番。赢家扎鸟扎一家得8,扎鸟全中得12;输家未扎中出2,扎中出4 硬 庄:2倍。赢家扎鸟扎一家得8,扎鸟全中得12;输家未扎中出2,扎中出4 地胡带拖:1+2=3番。赢家扎鸟扎一家得12,扎鸟全中得18;输家未扎中出3,扎中出6 起手报听:2番。赢家扎鸟扎一家得8,扎鸟全中得12;输家未扎中出2,扎中出4
天胡七小对全中:(3+2)✖2 = 5番。 天胡杠上花全中:(3)*2 ✖2 = 6番。 硬庄将将胡不中:(2)*2 ✖2 = 4番。 软庄碰碰胡的地胡带托不中:(碰碰胡2+地胡带托2) ✖软庄1 ✖扎鸟1 = 4番 硬庄将将胡的碰碰胡的天胡杠上花全中:(将将胡2+碰碰胡2+天胡2+杠上花2)✖硬庄2 ✖扎鸟2 = 32番 软庄清一色的碰碰胡的地胡带拖的杠上花不中:(2+2+2+2)✖1✖1 = 8番 硬庄清一色的碰碰胡的天地胡带托杠上花全中:(2+2+2+2+2)✖2✖2 = 40番
组合胡法得分计算公式: 自摸:(SUM门子倍数)✖扎鸟✖杠倍数 抓炮:
📖麻将术语 “听牌”:13张手牌(包含自己吃和碰的)还差凑够一张就能够胡牌,构成 “扎鸟”:胡牌结束后,庄家是1 5 9其他三家依此类推;扳开本该下一个人要摸的牌,如果数字显示是1或者5或者9,那么所有玩家输的分翻倍(全中);如果是2 6,只有下家翻倍;如果是3 7,只有对家翻倍;如果是4 8,只有上家翻倍。 “全中”:扎鸟扳开的麻将数值是1或5或9. “庄家”:上局胡牌获胜的一方;“下家”:当前家按逆时针的下一家;“对家”:当前家按逆时针的第二家;“上家”:当前家按逆时针的第三家 “王”:癞子的意思,可以任作,充当其他麻将手牌使用 “门子”:除了平胡以外的像碰碰胡、清一色、杠这种就算一个“门子”,“门子”采用加番规则(累加)(比如胡了一个) “108子”:108子分三种花色万wan、条tiao、筒tong;数字分别都是从1-9,每个数字有4张相同的牌,共:3 ✖ 9 ✖ 4 = 108张; “36将”:108子中任意花色的数字2、5、8为“将”,共:3 ✖ 3 ✖ 4 = 36将
结语 欢迎 fork / 二次开发,期待你的贡献! Enjoy the game! 🀄🎉
【功能】 点击链接进入桃江麻将主界面后,共有单人 联机 观战三种模式可以选择 轻点声音按钮可开启或关闭首页背景音乐 以单人模式为例 麻将规则与桃江麻将玩法高度一致
点击人物头像可以发送表情 点击人物头像下方的计分可以实时转分
右上角有五个功能按钮 分别是播放下一首 钢琴纯音乐模式开启/关闭背景音乐 开启/关闭麦克风、文字弹幕聊天 手牌可以随机拖动摆放顺序 自动摸张在右侧 手牌右侧的吃 碰 杠 胡亮起后可以点击选择也可以选择过 自动摸张 牌局结束进入结算界面 点击确定进入下一局对局 共16局
【问题】 1.兼容性的问题(安卓和苹果、手机和电脑) 2.实时语音最多三人,且非常不稳定 3.结束界面看不到赢家的所有牌,不知道谁赢 4.加麻将音效(一万、吃、我胡了……) 5.改昵称问题 6.服务器断开连接离线后重回房间!!!预防卡死机制!!! 7.复杂吃碰逻辑有问题,容易卡死,点击过于频繁崩溃
托管模式 胡牌判定失败,或者一旦界面卡死四人可以选择重开