/**
* 创建基本卡组
*
* 思路
* 1. Array.from转化基本花色字符串为数组
* 2. 利用map进行初始化花色以及基本数字, 设置level属性为排序数组做准备
* 3. [].concat()平铺数组
* @returns {Array} 返回type长度的二维数组
*/
const createDeck = (function(){
const type = "♠♥♦♣" // 基本花色
const base = ["3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A", "2"] // 牌组
return [].concat(...Array.from(type, item => {
return base.map( (v, key) => ({val: item + v, level: key}))
}), {val: "大王", level: 13}, {val: "小王", level: 13})
})()
/**
* 返回指定范围的随机数
*
* @param {number} [min] 最小值
* @param {number} [min] 最大值
* @returns {number} 数组下标
*/
function getRandom(min, max){
return Math.floor(Math.random() * (max - min) + min);
}
/**
* 生成随机卡组
*
* 思路
* 1. Array.from初始化卡组长度
* 2. 随机抽取数组元素
* 3. 根据level属性进
【JS】三十行代码实现洗牌效果
最新推荐文章于 2024-01-09 10:28:30 发布
![](https://img-home.csdnimg.cn/images/20240709112858.png)