美文网首页
小程序九宫格抽奖+中奖概率

小程序九宫格抽奖+中奖概率

作者: ThinkPHP爱开发 | 来源:发表于2020-05-16 14:49 被阅读0次

首先上图

首先就是页面初始数据渲染:

页面大体就是这些,接口获取奖项列表,然后访问后端计算概率接口获取到奖项位置,然后返回给小程序端,小程序端有了这个位置不管转动多少圈最终中奖位置都是这里。

接下来后端代码:

//根据概率获取奖项位置

public function get_draw(){

  $url="draw/prize_list";//奖项列表api接口

    $data['type_name'] = '九宫格抽奖';

  $data['shop_id'] = input('shop_id');

  $data['order_id'] = input('order_id');

    $res= getData($url,$data);

    if ($res['code']==1) {

    $prize_arr=$res['data']['draw_list'];

    }else{

    $prize_arr='';

    }

      foreach ($prize_arr as $k=>$v) {

    $arr[$v['id']] = $v['probability'];//这里是设定的概率值 值越高 中奖几率越大(0-100)

}

      $prize_id = $this->getRand($arr); //根据概率获取奖项id

      foreach($prize_arr as $k=>$v){ //获取前端奖项位置

          if($v['id'] == $prize_id){

          $prize_site = $k;

          break;

          }

      }

      $res = $prize_arr[$prize_id - 1]; //中奖项

      $arr = array_map('array_shift',$prize_arr);

      $key = array_search($prize_id,$arr);

      $data=[

        'prize_id'=>$res['id'],

        'id'=>$key,

        'type'=>$res['type'],

        'image_url'=>$res['image_url'],

        ];

        return json($data);

    }

    /**

    * 根据概率获取奖项

    * @param unknown $proArr

    * @return Ambigous <string, unknown>

    */

    function getRand($proArr)

    {

        $result = '';

        //概率数组的总概率精度

        $proSum = array_sum($proArr);

        //概率数组循环

        foreach ($proArr as $key => $proCur) {

            $randNum = mt_rand(1, $proSum);

            if ($randNum <= $proCur) {

                $result = $key;

                break;

            } else {

                $proSum -= $proCur;

            }

        }

        unset ($proArr);

        return $result;

    }

这里计算出中奖项返回给小程序端就ok了。

相关文章

  • 小程序九宫格抽奖+中奖概率

    首先上图 首先就是页面初始数据渲染: 页面大体就是这些,接口获取奖项列表,然后访问后端计算概率接口获取到奖项位置,...

  • 抽奖小程序结果页设计

    今天开始迭代抽奖小程序,之前做过一个抽奖活动只有一人中奖的场景,但是在新版抽奖小程序支持每个奖项可以多人中奖,这个...

  • 关于抽奖概率的测试

    抽奖程序设定的算法:把设定的中奖概率从小到大排序(0.1、0.15、0.25、0.5),划分区间([0,0...

  • php实现刮刮卡大转盘抽奖概率

    php实现刮刮卡大转盘抽奖概率 本文实例为大家分享了php中奖概率算法,可用于刮刮卡,大转盘等抽奖算法,用法很简单...

  • vue九宫格抽奖功能

    vue九宫格抽奖 页面结构 样式 思路:点击开始抽奖,调用转动的方法,如果达到转动次数要求,且转到中奖位置,则停止...

  • iris 抽奖实例6

    大转盘 固定几个奖品,不同的中奖概率或者总数量限制 每一次转动抽奖,后端计算出这次抽奖的中奖情况,并返回对应的奖品...

  • JavaScript 实现九宫格抽奖

    九格宫抽奖相信大家都玩过,今天就用 JavaScript 写个九宫格抽奖玩玩。让中奖不再是梦! 1.预览效果 效果...

  • 小程序实现大转盘,九宫格抽奖,带跑马灯效果

    基本实现功能 1,小程序仿天猫超市大转盘 2,九宫格转盘抽奖 3,积分抽奖 4,抽到的积分随机生成 5,抽奖结果可...

  • 抽奖概率相关的测试方法

    抽奖活动的中奖事件是个随机事件,用大量的手动测试来检验中奖概率的正确性显然不可取,除了手工对中奖流程,后续处理的校...

  • 飞雪朝看花网赚亲测2"我的小米"

    "我的小米"也是小米手机系统软件之一,一些小福利试叙之: 1.顶部升级领红包。 2.各项抽奖活动,中奖概率狠小。 ...

网友评论

      本文标题:小程序九宫格抽奖+中奖概率

      本文链接:https://www.haomeiwen.com/subject/jiolohtx.html