扑克牌顺子问题

问题描述:从扑克牌中随机抽出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,"这五张牌是顺子")  
  }

总感觉我的思路有点复杂,希望有想法的朋友能提出

原文地址:https://www.cnblogs.com/keyanjyl/p/7525083.html