-
Notifications
You must be signed in to change notification settings - Fork 0
Description
根据 #1 里面的内容, 第一套规则 四色牌 的游戏规则主要包括:
牌组: {将士象车马炮卒} * {黄,红,绿,白} + {公侯伯子男} (统称“金条”,算红色特殊将)。
玩家: 4人。
开局: 庄家21张,其他人20张。
定庄:
首局随机一人翻牌,根据牌面颜色决定,黄=1, 红=2, 绿=3, 白=4点,暨如果翻到牌的颜色是黄色则自己是庄。
大胡后,胜利方的对家成为新庄。
小胡后,庄家连庄。
翻牌: 庄家比其他玩家多一张牌(即第1张牌,随机时翻开的那张牌),这张牌公开。
运转规则:
玩家打出一张牌。下家选择“响应”或从牌堆翻一张牌。
翻牌后,优先检查其他玩家是否有“胡、开、碰”等高优先级操作。若无,翻牌的玩家可以“响应”这张牌。
如果玩家最终无法“响应”,则这张翻出的牌成为他打出的牌。
响应操作:
胡: 手牌和响应牌能组成全部牌组,即可胡牌。
开: 手上有三张相同的牌(一坎),再拿到第四张,可“开”,计6点。
碰: 手上有两张相同的牌,再拿到第三张,可“碰”,计1点。
吃: 只能吃上家的牌。响应牌+手牌能组成特定牌组。
牌组定义:
坎: 3张同色同字,计3点。(金条坎计9点)
鱼: 4张同色同字,计8点。(金条鱼计24点)
吃的组合:
同色:车马炮、将士象,计1点。
异色卒:3张不同色卒计1点,4张不同色卒计2点。
单张:将计1点,金条计3点。
胡牌计分:
小胡: 无“鱼”或“开”。得分 = (基础分3点+吃+碰+未开的坎)。
大胡: 有“鱼”或“开”。得分 = (基础分3点+吃+碰+未开的坎 + 开+鱼) * 2。
结算: 赢家向其他三人收取分数。其他玩家之间根据“坎、开、鱼”互相结算。
流局: 牌库剩8张时流局,庄家连庄。
现在已经有一定的后端实现,请你实现一个简易的JS交互程序(封装好响应的API调用services,然后用一个很简单的前端进行交互),一遍测试这个程序的正确性。(为了方便我测试,你还需要实现”托管模式“,我作为玩家,三个机器人作为游戏的参与者,共同完成一局游戏的测试)。在这个过程中,如果有发现后端错误可以一并修复