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>
时间: 2024-12-28 16:03:37