dou
doudizhu
npm i doudizhu
dou

doudizhu

JavaScript 斗地主算法封装

by 林志鹏

1.1.1 (see all)License:ISCTypeScript:Not Found
npm i doudizhu
Readme

doudizhu

瞎猫的JavaScript 斗地主算法封装

起步 Start

var doudizhu = require('doudizhu')

文档 Doc

洗牌

记录并返回1副乱序id的扑克牌数组

doudizhu.getShuffleCards()
/*
[ 15,  43,  49,  21,  51,  40,  23,  14,  25,  5,  4,  44,  3,  32,  53,  11,  41,  27,  7,  18,  38,  28,  8,  31,  17,  36,  42,  26,  47,  45,  22,  12,  34,  16,  2,  9,  1,  35,  52,  10,  20,  30,  29,  46,  13,  0,  6,  39,  48,  24,  19,  37,  33,  50 ]
*/

查看当前洗完的扑克牌

返回上次洗牌完成后的1副扑克牌数组(未洗过牌则为空数组)

doudizhu.getCards()
/*
[ 15,  43,  49,  21,  51,  40,  23,  14,  25,  5,  4,  44,  3,  32,  53,  11,  41,  27,  7,  18,  38,  28,  8,  31,  17,  36,  42,  26,  47,  45,  22,  12,  34,  16,  2,  9,  1,  35,  52,  10,  20,  30,  29,  46,  13,  0,  6,  39,  48,  24,  19,  37,  33,  50 ]
*/

发牌

返回1个对象记录4组牌:3组17张的随机牌、1组3张的地主牌

doudizhu.dealCards()
/*
{
    player1: [ 15, 21, 23, 5, 3, 11, 7, 28, 17, 26, 22, 16, 1, 10, 29, 0, 48 ],
    player2: [ 43, 51, 14, 4, 32, 41, 18, 8, 36, 47, 12, 2, 35, 20, 46, 6, 24 ],
    player3: [ 49, 40, 25, 44, 53, 27, 38, 31, 42, 45, 34, 9, 52, 30, 13, 39, 19 ],
    leaveCards: [ 37, 33, 50 ]
}
*/

获取扑克牌组的类型及权重信息

接收1个扑克牌id数组(可乱序),返回1个牌信息对象 如果出牌不合规则则返回 false

doudizhu.getCardType([8,12,16,20,24])
/*
{
    cardType: 'DAN_SHUN_ZI', // 牌型别名
    cardTypeWeight: 1, //牌类型权重
    groupCardsWeight: 1 // 当前扑克牌组权重
}
*/

压牌

接收2个扑克牌id数组(可乱序),返回两个牌的比较结果 若第二组牌可压第一组则返回 true 不可压或者牌不合法则返回 false

doudizhu.beat([8,12,16,20,24], [12,16,20,24,28])
/*
true
*/

默认排序

对给定的数组进行排序,按照从小到大,返回排序后的数组

传入数组元素必须为非负整数,否则返回 false

不限制数组元素大小,不限制数组元素不重复

注意:此排序为直接影响修改原数组

不可直接对当前的整副扑克牌数组对象进行排序,防止造成变量污染,故对此行为进行了异常抛出处理

doudizhu.sort([34, 6, 2, 8, 22])
/*
[ 2, 6, 8, 22, 22, 34 ]
*/

根权重排序

对给定的数组,根据牌权重、花色权重对牌进行排序

一般用于排列玩家手牌排序呈现

传入数组元素应该为小于54的非负整数,不可重复,否则返回false

注意:此排序为直接影响修改原数组

不可直接对当前的整副扑克牌数组对象进行排序,防止造成变量污染,故对此行为进行了异常抛出处理

doudizhu.weightSort([34, 6, 2, 8, 22, 53])
/*
[ 8, 22, 34, 2, 6, 53 ]
*/

牌型 Type

牌型别名权重示例
单条DAN_TIAO1
单顺子DAN_SHUN_ZI1
王炸WANG_ZHA3
--------
对子DUI_ZI1
双顺子SHUANG_SHUN_ZI1
--------
三条SAN_TIAO1
三带一SAN_DAI_YI1
三带一对SAN_DAI_YI_DUI1
三顺子SAN_SHUN_ZI1
飞机带单FEI_JI_DAI_DAN1
飞机带对FEI_JI_DAI_DUI1
--------
炸弹ZHA_DAN2
四带双单SI_DAI_SHUANG_DAN1
四带双对SI_DAI_SHUANG_DUI1
No alternatives found
No tutorials found
Add a tutorial
No dependencies found

Rate & Review

100
No reviews found
Be the first to rate