dou

doudizhu

JavaScript 斗地主算法封装

Showing:

Popularity

Downloads/wk

2

GitHub Stars

48

Maintenance

Last Commit

5yrs ago

Contributors

0

Package

Dependencies

0

License

ISC

Type Definitions

Tree-Shakeable

No?

Categories

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

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100
No reviews found
Be the first to rate

Alternatives

No alternatives found

Tutorials

No tutorials found
Add a tutorial