如何在JS中計算撲克牌中的順子、對子、半順、豹子、雜六


  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>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM