问题描述:从扑克牌中随机抽出5张牌,判断是不是一个顺子,这五张牌是不是连续
思路:
1.把13个重复四次的1-13的数字放进一个数组。
2.建立一个新数组
3.得到0-53的随机数,作为数组的下标,循环5次,通过下标,从旧数组中随机抽出5个新数字,放进新数组中 :新数组:[4, 1, 5, 2, 6]
4.新数组按从小到大顺序排列,方便判定大小
5.从新数组的第一个数开始,后一个数是前一个数-1,实现顺子,输出[7, 8, 9, 10, 11] "这五张牌是顺子"
代码如下:
var arr = [1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11,12,12,12,12,13,13,13,13]; //52张,去除大王和小王
var newArr = [ ];
//1.随机抽5张
for(var j = 0;j<5;j ++){
var a = Math.round(Math.random()*(arr.length-1)); // a是0-53的随机数
newArr.push(arr[a])
}
newArr.sort(function(a,b){return a - b;}); //新数组按从小到大顺序排列,方便判定大小
//2.若出现顺子,打印"这五张是顺子"
if(newArr[0] == newArr[1]-1 && newArr[1] == newArr[2]-1 && newArr[2] == newArr[3]-1 && newArr[3] == newArr[4]-1){ //从第一个数开始,后一天是前一个值-1
console.log(newArr,"这五张牌是顺子")
}
总感觉我的思路有点复杂,希望有想法的朋友能提出