大转盘的实现

简介: header('content-type: text/html;charset=utf-8');date_default_timezone_set('prc');//如果上面两行不存在对应问题,可以不设置/** * 保存转盘信息及提前设定的中...
header('content-type: text/html;charset=utf-8');
date_default_timezone_set('prc');
//如果上面两行不存在对应问题,可以不设置

/**
 * 保存转盘信息及提前设定的中奖者用户
 */
$prize_arr = array(
    array('min'=>1, 'max'=>89, 'prize'=>'一等奖', 'v'=>25, 'preuser'=>array(51)),
    array('min'=>90, 'max'=>179, 'prize'=>'二等奖', 'v'=>25),
    array('min'=>180, 'max'=>360, 'prize'=>'三等奖', 'v'=>50)
);

/**
 * 根据中奖占比获得对应的项
 * @param $prizeinfo array 转盘信息
 * @param $curruser int 当前玩转盘用户id
 * @return int 返回中奖项
 */
function getRand($prizeinfo, $curruser = 0)
{
     //根据prize_arr信息,对应key和中奖占比
    foreach ($prizeinfo as $key=>$val){
        $proArr[$key] = $val['v'];
    }
    $res = '';
    $proSum = array_sum($proArr);
    foreach ($prizeinfo as $key => $cur) { //预定

        if(!empty($cur['preuser']) && in_array($curruser, $cur['preuser'])){
            return $key;
        }
    }
    foreach ($proArr as $key => $proCur) {//未预定
        $randNum = mt_rand(1, $proSum);
        if($randNum <= $proCur){ //倘若本次随机数落在占比范围内则表示已经中奖
            $res = $key;
        }else{
            $proSum -= $proCur;
        }
    }
    unset($proArr);
    return $res;
}
$res = getRand($prize_arr); //根据转盘信息获得对应奖项
$reward = $prize_arr[$res]; //中奖的对应转盘信息
$return = array(
    'angle' => mt_rand($reward['min'], $reward['max']),
    'prize' => $reward['prize'],
    'time' => date('Y-m-d H:i:s')
);

var_dump($return);
目录
相关文章
|
21天前
|
小程序
大转盘抽奖小程序源码
大转盘抽奖小程序源码,测试依旧可用,无BUG,跑马灯旋转效果,非常酷炫。
17 1
|
3月前
|
小程序
html+css+js实现带有转盘的抽奖小程序
html+css+js实现带有转盘的抽奖小程序
47 0
|
7月前
|
存储 前端开发 JavaScript
中秋佳节,万家团圆:中秋拼图小游戏。
前言:提前预祝各位开发者、各行各业的工作人员,中秋佳节!国庆节~身体健康,阖家欢乐!!! 在这个拼图游戏中,我们会展示一张月饼图片,然后将它分割成多个小方块。我们需要拖拽这些小方块,使它们重新排列,最
|
10月前
|
小程序 前端开发 JavaScript
微信小程序实现抽奖大转盘
微信小程序实现抽奖大转盘
597 0
基于盲盒商城的飞机大战游戏
基于盲盒商城的飞机大战游戏
71 0
基于盲盒商城的飞机大战游戏
|
JavaScript 前端开发 程序员
【中秋征文】手把手教你海面月亮升起中秋节特效制作
【中秋征文】手把手教你海面月亮升起中秋节特效制作
177 0
【中秋征文】手把手教你海面月亮升起中秋节特效制作
|
双11 文件存储 前端开发
限量版阿里云手办,原来这么简单就拿到了(附详细攻略)
阿里云今年双11出了个“带云小宝回家”的活动,一共限量3000个手办,还挺有科技感,出个攻略,方便大家去薅羊毛。按照下面的步骤,一步一步操作就行。
2171 0
限量版阿里云手办,原来这么简单就拿到了(附详细攻略)
水果机抽奖(CocosCreator)
水果机抽奖(CocosCreator)
|
传感器 前端开发 芯片
画一个 “月饼” 陪我过中秋,使用 ESP32-C3 制作炫彩月饼
今年的中秋节又要到了,各平台活动也搞起来了,我有点坐不住了,作为一个嵌入式工程师,我可以做一个实实在在的月饼,拿在手上陪我们过中秋!
419 1
画一个 “月饼” 陪我过中秋,使用 ESP32-C3 制作炫彩月饼