zoukankan      html  css  js  c++  java
  • 扑克牌顺子问题

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

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

  • 相关阅读:
    还记得吗
    PAT A 1065. A+B and C (64bit) (20)
    畅通project(杭电1863)
    cocos2d-x 3.0游戏实例学习笔记《卡牌塔防》第七步---英雄要升级&amp;属性--解析csv配置文件
    热烈祝贺Polymer中文组织站点上线
    具体解释HTML中的window对象和document对象
    oc15--文档安装
    oc14--匿名对象
    oc13--pragma mark
    oc12--对象作为参数
  • 原文地址:https://www.cnblogs.com/keyanjyl/p/7525083.html
Copyright © 2011-2022 走看看