"六勃红", self::RESULT_BDJ => "遍地锦", self::RESULT_LBHEI => "六抔黑", self::RESULT_ZYCJH => "状元插金花", self::RESULT_WH => "五红", self::RESULT_WZDYX => "五子带一秀", self::RESULT_WZ => "五子", self::RESULT_ZY => "状元", self::RESULT_DT => "对堂", self::RESULT_SH => "三红", self::RESULT_SJ => "四进", self::RESULT_EJ => "二举", self::RESULT_YX => "一秀", self::RESULT_FH => "罚黑" ); return $arr; } /** * 博小鱼币时,鱼币对应关系 * @param $level * @return int */ static public function getyucoin($level) { $arr = array( self::RESULT_ZYCJH => 20, //状元插金花 self::RESULT_LBHONG => 18, //六勃红 //self::RESULT_BD => 13, //遍地锦 self::RESULT_LBHEI => 16, //六勃黑 self::RESULT_WH => 14, //五红 self::RESULT_WZDYX => 12, //五子带一秀 self::RESULT_WZ => 10, //五子 self::RESULT_ZY => 8, //状元 self::RESULT_DT => 5, //对堂 self::RESULT_SH => 4, //三红 self::RESULT_SJ => 3, //四进 self::RESULT_EJ => 2, //二举 self::RESULT_YX => 1, //一秀 self::RESULT_FH => 0, //罚黑 ); return intval($arr[$level]); } //结果名称 static public function getName($flag) { $arr = self::getAllLevel(); if (empty($arr[$flag])) { return $arr[self::RESULT_FH]; } else { return $arr[$flag]; } } //输出结果 static public function show_result_msg($resultlevel, &$resultname, &$istop) { if ($resultlevel == 0) { $resultname = "加油 再试一次"; } else if ($resultlevel == Dice::RESULT_YX) { $resultname .= " 一马当先"; } else if ($resultlevel == Dice::RESULT_EJ) { $resultname .= " 加把劲往前冲"; } else if ($resultlevel == Dice::RESULT_SJ) { $resultname .= " 再博博找找灵感"; } else if ($resultlevel == Dice::RESULT_SH) { $resultname .= " 有点能耐继续努力"; } else if ($resultlevel == Dice::RESULT_DT) { $resultname .= " 胜利在望"; } else if ($resultlevel >= Dice::RESULT_ZY) { $istop = 1; $resultname .= " 恭喜!"; } return $resultname; } //初始化,随便生成点数 function init($resultStr = false) { if (!$resultStr) { $this->run(); } else { $this->_resultArr = self::strToArr($resultStr); if (!$this->_resultArr) { return false; } } $this->parse(); } //掷骰子 private function run($resultStr = false) { if (!$resultStr) { $_DICE = array( array(1, 2, 3, 4, 5, 6), array(1, 2, 3, 4, 5, 6), array(1, 2, 3, 4, 5, 6), array(1, 2, 3, 4, 5, 6), array(1, 2, 3, 4, 5, 6), array(1, 2, 3, 4, 5, 6) ); //生成随机数组 $dice_count = count($_DICE); for ($i = 0; $i < $dice_count; $i++) { $this->_resultArr[$i] = $_DICE[$i][rand(0, count($_DICE[$i]) - 1)]; } } else { $this->_resultArr = self::strToArr($resultStr); if (!$this->_resultArr) { return false; } } } //分析 private function parse() { $sumVal = 0; //总点数 //结果数量,用于统计哪个点有几个 $nums = array( //点=>数量, 1 => 0, 2 => 0, 3 => 0, 4 => 0, 5 => 0, 6 => 0, ); //统计点数数量 foreach ($this->_resultArr as $value) { $nums[$value]++; $sumVal += $value; } if ($nums[4] == 6) { $this->_resultLevel = self::RESULT_LBHONG; //六勃红 } /* * else if($nums[1] == 6){ $this->_resultLevel = self::RESULT_BDJ; //遍地锦 } */ else if (($nums[2] == 6) || ($nums[3] == 6) || ($nums[5] == 6) || ($nums[6] == 6) || $nums[1] == 6) { $this->_resultLevel = self::RESULT_LBHEI; //六勃黑 } else if (($nums[4] == 4) && ($nums[1] == 2)) { $this->_resultLevel = self::RESULT_ZYCJH; //状元插金花 } else if ($nums[4] == 5) { $this->_resultLevel = self::RESULT_WH; //五红 $this->_resultVal = $sumVal - 20; //附带点数 } else if ((($nums[1] == 5) || ($nums[2] == 5) || ($nums[3] == 5) || ($nums[5] == 5) || ($nums[6] == 5)) && ($nums[4] == 1)) { $this->_resultLevel = self::RESULT_WZDYX; //五子带一秀 } else if ((($nums[1] == 5) || ($nums[2] == 5) || ($nums[3] == 5) || ($nums[5] == 5) || ($nums[6] == 5))) { $this->_resultLevel = self::RESULT_WZ; //五子 if ($nums[$this->_resultArr[0]] == 5) { $this->_resultVal = $sumVal - $this->_resultArr[0] * 5; //附带点数 } else { $this->_resultVal = $this->_resultArr[0]; //附带点数 } } else if (($nums[4] == 4)) { $this->_resultLevel = self::RESULT_ZY; //状元 $this->_resultVal = $sumVal - 16; //附带点数 } else if (($nums[1] == 1) && ($nums[2] == 1) && ($nums[3] == 1) && ($nums[4] == 1) && ($nums[5] == 1) && ($nums[6] == 1)) { $this->_resultLevel = self::RESULT_DT; //对堂 } else if ($nums[4] == 3) { $this->_resultLevel = self::RESULT_SH; //三红 } else if (($nums[1] == 4) || ($nums[2] == 4) || ($nums[3] == 4) || ($nums[5] == 4) || ($nums[6] == 4)) { $this->_resultLevel = self::RESULT_SJ; //四进 } else if ($nums[4] == 2) { $this->_resultLevel = self::RESULT_EJ; //二举 } else if ($nums[4] == 1) { $this->_resultLevel = self::RESULT_YX; //一秀 } else { $this->_resultLevel = self::RESULT_FH; //罚黑 } } //重新掷骰子 public function reRun($resultStr = false) { //清空数据 $this->_resultLevel = 0; $this->_resultVal = 0; $this->_resultArr = array(0, 0, 0, 0, 0, 0); $this->run($resultStr); $this->parse(); } //取得结果等级 public function getResultLevel() { return $this->_resultLevel; } //取得结果值(附带点数) public function getResultVal() { return $this->_resultVal; } //取得结果名称 public function getResultName() { $resultLevel = $this->_resultLevel; return $this->getName($resultLevel); } //取得结果骰子点数数组 public function getResultArr() { return $this->_resultArr; } //取得结果骰子点数字符串代表结果(用于保存到数据库中如234123) public function getResultStr() { return implode($this->_resultArr); } public function getcredit($level = false) { $level = $level == false ? $this->_resultLevel : $level; $arr = array( self::RESULT_ZYCJH => 120, //状元插金花 self::RESULT_LBHONG => 100, //六勃红 //self::RESULT_BD => 13, //遍地锦 self::RESULT_LBHEI => 90, //六勃黑 self::RESULT_WH => 80, //五红 self::RESULT_WZDYX => 70, //五子带一秀 self::RESULT_WZ => 60, //五子 self::RESULT_ZY => 50, //状元 self::RESULT_DT => 20, //对堂 self::RESULT_SH => 10, //三红 self::RESULT_SJ => 5, //四进 self::RESULT_EJ => 2, //二举 self::RESULT_YX => 1, //一秀 self::RESULT_FH => 0, //罚黑 ); return intval($arr[$level]); } //把代表点数的字符串转化为点数数组 static public function strToArr($str = "") { if ($str == "") { return false; } $arr = explode(',', $str); if (count($arr) != 6) { //非法字符串 return false; } foreach ($arr as $value) { if (!($value >= 1 && $value <= 6)) { //非法字符 return false; } } return $arr; } } //test //$dice = new Dice(); //while($dice->getResultLevel() != 5) //{ // $dice->reRun(); //} //echo "
result lever:".$dice->getResultLevel(); //echo "
result val:".$dice->getResultVal(); //echo "
result name:".$dice->getResultName(); //echo "
result string:".$dice->getResultStr(); ?>