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>