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>