header('content-type: text/html;charset=utf-8');
date_default_timezone_set('prc');
//如果上面兩行不存在對(duì)應(yīng)問題,可以不設(shè)置
/**
* 保存轉(zhuǎn)盤信息及提前設(shè)定的中獎(jiǎng)?wù)哂脩? */
$prize_arr = array(
array('min'=>1, 'max'=>89, 'prize'=>'一等獎(jiǎng)', 'v'=>25, 'preuser'=>array(51)),
array('min'=>90, 'max'=>179, 'prize'=>'二等獎(jiǎng)', 'v'=>25),
array('min'=>180, 'max'=>360, 'prize'=>'三等獎(jiǎng)', 'v'=>50)
);
/**
* 根據(jù)中獎(jiǎng)?wù)急全@得對(duì)應(yīng)的項(xiàng)
* @param $prizeinfo array 轉(zhuǎn)盤信息
* @param $curruser int 當(dāng)前玩轉(zhuǎn)盤用戶id
* @return int 返回中獎(jiǎng)項(xiàng)
*/
function getRand($prizeinfo, $curruser = 0)
{
//根據(jù)prize_arr信息,對(duì)應(yīng)key和中獎(jiǎng)?wù)急? foreach ($prizeinfo as $key=>$val){
$proArr[$key] = $val['v'];
}
$res = '';
$proSum = array_sum($proArr);
foreach ($prizeinfo as $key => $cur) { //預(yù)定
if(!empty($cur['preuser']) && in_array($curruser, $cur['preuser'])){
return $key;
}
}
foreach ($proArr as $key => $proCur) {//未預(yù)定
$randNum = mt_rand(1, $proSum);
if($randNum <= $proCur){ //倘若本次隨機(jī)數(shù)落在占比范圍內(nèi)則表示已經(jīng)中獎(jiǎng)
$res = $key;
}else{
$proSum -= $proCur;
}
}
unset($proArr);
return $res;
}
$res = getRand($prize_arr); //根據(jù)轉(zhuǎn)盤信息獲得對(duì)應(yīng)獎(jiǎng)項(xiàng)
$reward = $prize_arr[$res]; //中獎(jiǎng)的對(duì)應(yīng)轉(zhuǎn)盤信息
$return = array(
'angle' => mt_rand($reward['min'], $reward['max']),
'prize' => $reward['prize'],
'time' => date('Y-m-d H:i:s')
);
var_dump($return);
大轉(zhuǎn)盤的實(shí)現(xiàn)
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- 雙節(jié)盛會(huì) **詩文/紅塵一凡 中秋國慶喜氣濃, 十九黨會(huì)開幕紅。 拾叁點(diǎn)五億眾樂, 華夏復(fù)興前進(jìn)中。 貪腐積弱...