最新消息:欢迎各位老板亲临筱筱易!

PHP或JS计算顺子、对子、半顺、豹子、杂六的方法

PHP shenmor 1091浏览 0评论

PHP或JS计算顺子、对子、半顺、豹子、杂六的方法

PHP代码如下:

<?php
echo calc(array(1,7,0));

function calc($numberArray){	// 计算	传入3个成员的数组	例:echo calc(array(1,7,0));
	$resultArray = calcGamePlayResult($numberArray);
	$value = '';
	if($resultArray[0] == 1){
	   $value = "对子";
	}elseif($resultArray[0] == 2){
		$value = "豹子";
	}elseif($resultArray[1] == 1){
		$value = "半顺";
	}elseif($resultArray[1] == 2){
		$value = "顺子";
	}else{
		$value = "杂六";
	}
	return $value;
}

/**
* 计算顺子、对子、半顺、豹子、杂六
*
* @arguments array 数组
*
* @returns 数组下标0 对应豹子、对子   数组下标1 对应顺子、半顺、杂六
*/
function calcGamePlayResult($array){
	sort($array);
	//存储计算结果
	$resultArray = Array();

	//计算豹子、对子
	$resultArray[0] = $array[2] - $array[1] == 0 ? 1 : 0;
	$resultArray[0] = $array[1] - $array[0] == 0 ? ++$resultArray[0] : $resultArray[0];

	//计算顺子、半顺、杂六
	$resultArray[1] = $array[2] - $array[1] == 1 ? 1 : 0;
	$resultArray[1] = $array[1] - $array[0] == 1 ? ++$resultArray[1] : $resultArray[1];

	return $resultArray;
}
?>

HTML+JS代码如下:

<!DOCTYPE html>
<html>
 <head>
  <title>如何计算扑克牌中的顺子、对子、半顺、豹子、杂六</title>
  <meta charset="utf-8"/>
  </head>
 <body>
         号码1:<input type="number" value="5" id="num1"/><br />
         号码2:<input type="number" value="6" id="num2"/><br />
         号码3:<input type="number" value="1" id="num3"/><br />
         <button onclick="calc()">计算</button><span style="color:red;margin-left:50px;">计算结果:<b id="result" style="color:blue"></b></span>
   <script>

     /**
      * 计算
      */
     function calc(){
        var numberArray = new Array(3);
        for(var i = 0;i < 3;i++){
           numberArray[i] = document.getElementById("num"+(i+1)).value;
        }
        var resultArray = calcGamePlayResult(numberArray);
        var value = '';
        if(resultArray[0] == 1){
           value = "对子";
        }else if(resultArray[0] == 2){
            value = "豹子";
        }else if(resultArray[1] == 1){
            value = "半顺";
        }else if(resultArray[1] == 2){
            value = "顺子";
        }else{
            value = "杂六";
        }
        document.getElementById("result").innerHTML=value;
     }

     /**
      * 计算顺子、对子、半顺、豹子、杂六
      *
      * @arguments array 数组
      *
      * @returns 数组下标0 对应豹子、对子   数组下标1 对应顺子、半顺、杂六
      */
     function calcGamePlayResult(array){
        array = Arrays.toNumArray(array);
        array = Arrays.sortAsc(array);
        //存储计算结果
        var resultArray = new Array(2);
        
        //计算豹子、对子
        resultArray[0] = array[2] - array[1] == 0 ? 1 : 0;
        resultArray[0] = array[1] - array[0] == 0 ? ++resultArray[0] : resultArray[0];

        //计算顺子、半顺、杂六
        resultArray[1] = array[2] - array[1] == 1 ? 1 : 0;
        resultArray[1] = array[1] - array[0] == 1 ? ++resultArray[1] :  resultArray[1];

        return resultArray;
     }

    /**
     * 数组操作类
     */
    function Arrays(){
     
    }

    /**
      * 对整型数组进行升序排序
      *
      * @arguments array 整型数组
      *
      * @returns 排序后的数组
      */
     Arrays.sortAsc = function (array){
         for(var i  = 0;i < array.length;i++){
           for(var x = i;x < array.length;x++){
              if(array[i] > array[x]){
                 var temp = array[x];
                 array[x] = array[i];
                 array[i] = temp;
              }
           }
         }
        return array;
     }

     /**
      * 将字符串数组转换为整型数组
      *
      * @arguments strArray 字符串数组
      * 
      * @returns 整型数组 
      */
     Arrays.toNumArray = function (strArray){
        var numArray = new Array(strArray.length);
        for(var i = 0;i < strArray.length;i++){
            numArray[i] = Number(strArray[i]);
        }
        return numArray;
     }
   </script>
 </body>
</html>

筱筱易原创

转载请注明:筱筱易的博客»PHP或JS计算顺子、对子、半顺、豹子、杂六的方法

发表我的评论
 

网友最新评论()



    评论加载中...