掼蛋的业务逻辑

掼蛋的业务逻辑掼蛋 淮安跑得快 游戏规则 游戏牌数 两副牌 共 108 张牌 每人 27 张牌 2 牌型 单张 任意一张单牌 顺子 五张点数相连的牌 只限 5 张 A 在顺子中只能作为最前面或者最后面的一张牌 例如

大家好,我是讯享网,很高兴认识大家。

【掼蛋(淮安跑得快)游戏规则】

游戏牌数:

两副牌,共108张牌,每人27张牌。

2.牌型

单张:任意一张单牌。

顺子:五张点数相连的牌。(只限5张)

A在顺子中只能作为最前面或者最后面的一张牌,例如:A2345或者10JQKA是顺子,JQKA2属不符合规则的牌型。

同花顺:花色相同的顺子牌型。

对子:任意两张点数相同的牌。

两个大王或者两个小王也算做对子。

连对:三对点数相连的牌,(只限三对)如:。

A在连对中只能作为最前面或者最后面的一张牌,如AA2233或者KKAA。王不能参与到连对中。

三张:任意三张点数相同的牌。

三顺(钢板):两组点数相连的三张牌,(限定两组)如:。

三带二:点数相同的三张牌+一对牌,如55577

炸弹:四张或四张以上点数相同的牌。如6666,。

天王炸弹:四张王牌(两个大王+两个小王)

主牌:当局打到几,相应点数的牌就是主牌。

逢人配

主牌中红桃花色的两张牌,和别的牌一起出的时候,可以替换成除了王以外的任意点数的牌,组成除天王炸弹外的任意牌型。

例如本局主牌为9:

则:

黑桃9,红桃9,10,Q,K,组成910JQK

5,5,6,7,7,红桃9,组成

+两个红桃9,组成

3.牌型的比较

点数大小,从大到小依次为:大王、小王、主牌、A、K、Q、J、10、9、8、7、6、5、4、3、2。

A在顺子、同花顺、连对和三顺中,如果和2相连,则此时A点数算最小;

非炸弹和同花顺的牌型,牌型、张数相同才能相互比较,点数大的则大。

连对,三带二等组合牌型,比较张数多的一组的点数即可。

炸弹和同花顺牌型大于任何其他的牌型。

天王炸弹最大,同花顺大于所有5张牌和4张牌的炸弹;相同点数牌组成的炸弹,张数多的大;同花顺之间比较点数最大的一张牌即可。

4.游戏名次

按照出完牌的顺序排名次,依次为:

第一名(头游)

第二名

第三名


讯享网

第四名(末游)

同一组的两个玩家获得第三名和第四名的情况,称为“双下”。

双下的情况,输方的两个玩家均算作末游。

5.升级规则

从2开始打,打到8或者打到A。

一局结束后:

如果是双下,赢家方升3级。

如果赢家方获得第一名和第三名,赢家方升2级;

如果赢家方获得第一名和末游,赢家升1级;

如果某个玩家连续3次头游,则该玩家所在的一方当局额外升1级;累计4次额外升2级,以此类推;

如果某个玩家连续3次末游,则该玩家所在的一方当局额外降1级;累计4次末游额外降2级,以此类推;

打到系统指定的最终点数的那一局,必须当局赢家没有末游才可以最终赢得本局。否则当局玩家不升级。

6.进贡规则

双下:

下一局两个输家要分别进贡一张除主牌红桃外的最大的牌给赢家;两张进贡的牌点数大的给头游,点数小的给第二名。

赢家分别还一张任意牌给自己的下家。

若两个输家方下一局一共抓了两个大王,则抗贡,不用进贡。

非双下的情况:

下一局末游玩家向头游玩家进贡一张除主牌红桃外的最大的牌,

头游玩家还一张任意牌。

若末游玩家有两张大王,可抗贡,不用进贡。

7.计分规则

在游戏中,以欢乐积分计划中累计产生的积分“欢乐豆”做为游戏计分单位。

完成一盘游戏后玩家的欢乐豆可能会发生变化,同时每盘游戏结束后,系统将自动回收每位玩家一定数量的欢乐豆。具体计算公式如下:

失败玩家的欢乐豆消耗:X×N+A

胜利玩家的欢乐豆奖励:X×N-A

系统回收的欢乐豆:根据不同游戏房间而不同

其中:

X=游戏基数

N=房间系数, 每个房间不同以具体房间为准

A=系统每盘自动回收的欢乐豆数量,根据不同游戏房间而不同

游戏基数计算规则:

一局游戏结束,赢家方升X级,游戏基数等于X。

打到8结束,游戏基数额外加5;

打到A结束,游戏基数额外加10分。

php // 连接时 $worker->onConnect = function($connection) { $connection->send(json_encode(['type' => 'init'])); }; // 收到消息 $worker->onMessage = function($connection, $data) { $data = json_decode($data, true); global $player; $p = &$player[$connection->id]; switch ($data['type']) { case 'fa_pai': fa_pai(); send_pai($p['conn'], $p['pai']); break; case 'chu_pai': if (can_chu_pai($data['pai'])) { chu_pai($data); } else { send_msg('chu_pai_fail', ''); } break; case 'sheng_ji': sheng_ji(); break; case 'jin_gong': jin_gong($data); break; } }; // 消息推送 function send_msg($type, $data) { global $player; foreach ($player as $p) { $p['conn']->send(json_encode(['type' => $type, 'data' => $data])); } } // 牌组 function get_pai() { // ... } // 发牌 function fa_pai() { $pai = get_pai(); global $player; shuffle($pai); for ($i=0; $i<4; $i++) { $player[$i]['pai'] = array_slice($pai, $i * 27, 27); } } // 出牌规则判断 function can_chu_pai($pai) { global $turn, $main_pai; // 是否为主牌或同花顺 if (($pai[0] == $main_pai && count($pai) == 2) || is_tonghua_shun($pai)) return true; // 其他规则判断... } // 升级规则 function sheng_ji() { global $level; if ($win[0] == $win[1]) $level[$win[0]] += 3; // 双下 elseif ($win[0] == 0 && $win[3] == 1) $level[0] += 2; // 头游+第三 elseif ($win[0] == 0 && $win[3] == 3) $level[0] += 1; // 头游+末游 // 连续头游或末游升级规则... } // 进贡规则 function jin_gong($data) { global $turn; if ($turn == 1) { // 双下 $max1 = get_max_pai($player[2]['pai']); $max2 = get_max_pai($player[3]['pai']); $player[0]['pai'][] = $max1; $player[1]['pai'][] = $max2; // 还牌规则... } else { // 非双下 $max = get_max_pai($player[3]['pai']); $player[0]['pai'][] = $max; // 还牌规则... } } // 其他规则...

讯享网

小讯
上一篇 2025-01-18 13:18
下一篇 2025-03-07 13:53

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/60638.html