c语言jj斗地主源码,GitHub - choushane/cocoscreator-ddz: cocos-斗地主,客户端和服务端(node.js socket.io)...

本文展示了使用cocoscreator开发斗地主游戏的逻辑代码,包括牌型判断、顺子、连对等复杂规则。通过getCarAnalyseInfo、sortByLength等函数解析和比较玩家打出的牌,实现游戏的比较和排序功能。
摘要由CSDN通过智能技术生成

cocoscreator-斗地主

9f914aecda3d97cf53be7c4a68e94898.png

785e296568637189500e54afc1fe6a52.png

b93e74de5b67fb75b0426927f4c7a326.png

5e83b8ab0aa324e564ad2d2e834cc1cc.png

/**

* 牌型

火箭:即双王(大王和小王),最大的牌。

炸弹:四张点数相同的牌,如:7777。

单牌:任意一张单牌。

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

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

三带一:点数相同的三张牌+一张单牌或一对牌。如:333+6 或 444+99。

单顺:任意五张或五张以上点数相连的牌,如:45678或78910JQK。不包括 2和双王。

双顺:三对或更多的连续对牌,如:334455、7788991010JJ。不包括 2 点和双王。

三顺:二个或更多的连续三张牌,如:333444 、555666777888。不包括 2 点和双王。

飞机带翅膀:三顺+同数量的单牌或同数量的对牌。如:444555+79 或333444555+7799JJ

四带二:四张牌+两手牌。(注意:四带二不是炸弹)。如:5555+3+8 或 4444+55+77 。

*/

var PokerObj = require("Poker");

var CardType = cc.Enum({

c1: 0, //单牌。

c2: -1, //对子。

c20: -1, //王炸。

c3: -1, //3不带。

c4: -1, //炸弹。

c31: -1, //3带1。

c32: -1, //3带2。

c411: -1, //4带2个单,或者一对

c422: -1, //4带2对

c123: -1, //顺子。

c1122: -1, //连队。

c111222: -1, //飞机。

c11122234: -1, //飞机带单排.

c1112223344: -1, //飞机带对子.

c0: -1 //不能出牌

});

//获取牌的等级

function getGrade(card) {

return card.getComponent('Poker')._grade;

};

//牌生成一个反应数量的数组

function getCarAnalyseInfo(cards) {

var oneArray = [];

var twoArray = [];

var threeArray = [];

var fourArray = [];

//循环跳过的数量=相同牌的数量

var jumpCount = 1;

for (let i = 0; i < cards.length; i += jumpCount) {

var sameCount = 1;

var grade = getGrade(cards[i]);

for (let j = i + 1; j < cards.length; j++) {

var grade1 = getGrade(cards[j]);

if (grade != grade1) {

break;

}

sameCount++;

}

jumpCount = sameCount;

switch (sameCount) {

case 1:

oneArray.push(grade);

break;

case 2:

twoArray.push(grade);

break;

case 3:

threeA

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值