码迷,mamicode.com
首页 > Web开发 > 详细

如何在JS中计算扑克牌中的顺子、对子、半顺、豹子、杂六

时间:2015-08-21 23:06:19      阅读:380      评论:0      收藏:0      [点我收藏+]

标签:

  1 <!DOCTYPE html>
  2 <html>
  3  <head>
  4   <title>如何计算扑克牌中的顺子、对子、半顺、豹子、杂六</title>
  5   <meta charset="utf-8"/>
  6   </head>
  7  <body>
  8          号码1:<input type="number" value="5" id="num1"/><br />
  9          号码2:<input type="number" value="6" id="num2"/><br />
 10          号码3:<input type="number" value="1" id="num3"/><br />
 11          <button onclick="calc()">计算</button><span style="color:red;margin-left:50px;">计算结果:<b id="result" style="color:blue"></b></span>
 12    <script>
 13 
 14      /**
 15       * 计算
 16       */
 17      function calc(){
 18         var numberArray = new Array(3);
 19         for(var i = 0;i < 3;i++){
 20            numberArray[i] = document.getElementById("num"+(i+1)).value;
 21         }
 22         var resultArray = calcGamePlayResult(numberArray);
 23         var value = ‘‘;
 24         if(resultArray[0] == 1){
 25            value = "对子";
 26         }else if(resultArray[0] == 2){
 27             value = "豹子";
 28         }else if(resultArray[1] == 1){
 29             value = "半顺";
 30         }else if(resultArray[1] == 2){
 31             value = "顺子";
 32         }else{
 33             value = "杂六";
 34         }
 35         document.getElementById("result").innerHTML=value;
 36      }
 37 
 38      /**
 39       * 计算顺子、对子、半顺、豹子、杂六
 40       *
 41       * @arguments array 数组
 42       *
 43       * @returns 数组下标0 对应豹子、对子   数组下标1 对应顺子、半顺、杂六
 44       */
 45      function calcGamePlayResult(array){
 46         array = Arrays.toNumArray(array);
 47         array = Arrays.sortAsc(array);
 48         //存储计算结果
 49         var resultArray = new Array(2);
 50         
 51         //计算豹子、对子
 52         resultArray[0] = array[2] - array[1] == 0 ? 1 : 0;
 53         resultArray[0] = array[1] - array[0] == 0 ? ++resultArray[0] : resultArray[0];
 54 
 55         //计算顺子、半顺、杂六
 56         resultArray[1] = array[2] - array[1] == 1 ? 1 : 0;
 57         resultArray[1] = array[1] - array[0] == 1 ? ++resultArray[1] :  resultArray[1];
 58 
 59         return resultArray;
 60      }
 61 
 62     /**
 63      * 数组操作类
 64      */
 65     function Arrays(){
 66      
 67     }
 68 
 69     /**
 70       * 对整型数组进行升序排序
 71       *
 72       * @arguments array 整型数组
 73       *
 74       * @returns 排序后的数组
 75       */
 76      Arrays.sortAsc = function (array){
 77          for(var i  = 0;i < array.length;i++){
 78            for(var x = i;x < array.length;x++){
 79               if(array[i] > array[x]){
 80                  var temp = array[x];
 81                  array[x] = array[i];
 82                  array[i] = temp;
 83               }
 84            }
 85          }
 86         return array;
 87      }
 88 
 89      /**
 90       * 将字符串数组转换为整型数组
 91       *
 92       * @arguments strArray 字符串数组
 93       * 
 94       * @returns 整型数组 
 95       */
 96      Arrays.toNumArray = function (strArray){
 97         var numArray = new Array(strArray.length);
 98         for(var i = 0;i < strArray.length;i++){
 99             numArray[i] = Number(strArray[i]);
100         }
101         return numArray;
102      }
103    </script>
104  </body>
105 </html>

 

如何在JS中计算扑克牌中的顺子、对子、半顺、豹子、杂六

标签:

原文地址:http://www.cnblogs.com/-1234/p/4749185.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!