包在文件中 lottery.zip

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<meta name="keywords" content="html5,本地存储" />
<meta name="description" content="Helloweba演示平台,演示XHTML、CSS、jquery、PHP案例和示例" />
<title>幸运大转盘-jQuery+PHP实现的抽奖程序</title>
<link rel="stylesheet" type="text/css" href="../css/main.css" />
<style type="text/css">
.demo{width:417px; height:417px; position:relative; margin:50px auto}
#disk{width:417px; height:417px; background:url(disk.jpg) no-repeat}
#start{width:163px; height:320px; position:absolute; top:46px; left:130px;}
#start img{cursor:pointer}
</style>
<script type="text/javascript" src="http://xhdoctor.ci.com/static/js/jquery-3.1.0.min.js"></script>
<script type="text/javascript" src="jQueryRotate.2.2.js"></script>
<script type="text/javascript" src="jquery.easing.min.js"></script>
<script type="text/javascript">
$(function(){
$("#startbtn").click(function(){
lottery();
});
});
function lottery(){
$.ajax({
type: 'POST',
url: 'data.php',
dataType: 'json',
cache: false,
error: function(){
alert('出错了!');
return false;
},
success:function(json){
$("#startbtn").unbind('click').css("cursor","default");
var a = json.angle; //角度
var p = json.prize; //奖项
$("#startbtn").rotate({
duration:3000, //转动时间
angle: 0,
animateTo:1800+a, //转动角度
easing: $.easing.easeOutSine,
callback: function(){
var con = confirm('恭喜你,中得'+p+'\n还要再来一次吗?');
if(con){
lottery();
}else{
return false;
}
}
});
}
});
}
</script>
</head>

<body>
<div id="main">
<div class="msg"></div>
<div class="demo">
<div id="disk"></div>
<div id="start"><img src="start.png" id="startbtn"></div>
</div>
<div class="ad_demo"><script src="/js/ad_js/ad_demo.js" type="text/javascript"></script></div><br/>
</div>

<!--<p id="stat"><script type="text/javascript" src="http://js.tongji.linezing.com/1870888/tongji.js"></script></p>-->
</body>
</html>

<?php
$prize_arr = array(
'0' => array('id'=>1,'min'=>1,'max'=>29,'prize'=>'一等奖','v'=>1),
'1' => array('id'=>2,'min'=>302,'max'=>328,'prize'=>'二等奖','v'=>2),
'2' => array('id'=>3,'min'=>242,'max'=>268,'prize'=>'三等奖','v'=>5),
'3' => array('id'=>4,'min'=>182,'max'=>208,'prize'=>'四等奖','v'=>7),
'4' => array('id'=>5,'min'=>122,'max'=>148,'prize'=>'五等奖','v'=>10),
'5' => array('id'=>6,'min'=>62,'max'=>88,'prize'=>'六等奖','v'=>25),
'6' => array('id'=>7,'min'=>array(32,92,152,212,272,332), 'max'=>array(58,118,178,238,298,358),'prize'=>'七等奖','v'=>50)
);
// 1 2 5 7 10 25 50
function getRand($proArr) {
$result = '';
//概率数组的总概率精度 v值的和
$proSum = array_sum($proArr);
//概率数组循环
foreach ($proArr as $key => $proCur) {
//1 - 100 之间的随机数
$randNum = mt_rand(1, $proSum);
if ($randNum <= $proCur) {
$result = $key;
break;
}
else {
$proSum -= $proCur;
}
}
unset ($proArr);
return $result;
}
foreach ($prize_arr as $key => $val) {
$arr[$val['id']] = $val['v'];
}

$rid = getRand($arr); //根据概率获取奖项id
$res = $prize_arr[$rid-1]; //中奖项
$min = $res['min'];
$max = $res['max'];
if($res['id']==7){ //七等奖
$i = mt_rand(0,5);
$result['angle'] = mt_rand($min[$i],$max[$i]);
}else{
$result['angle'] = mt_rand($min,$max); //随机生成一个角度
}
$result['prize'] = $res['prize'];

echo json_encode($result);

php 大转盘抽奖的更多相关文章

  1. jquery——九宫格大转盘抽奖

    一.用到的图片 二.代码如下,重点是js部分 <!DOCTYPE html> <html> <head> <meta http-equiv="Con ...

  2. 纯CSS3大转盘抽奖(响应式、可配置)

    源于前段时候微信小程序最初火爆公测时段,把以前用 Canvas 实现的大转盘抽奖移植成微信小程序,无奈当时小程序对 Canvas 支持不够完善,只好降低用 CSS3 实现.虽然比不上 Canvas 绘 ...

  3. PHP实现大转盘抽奖算法实例

    本文主要向大家介绍了PHP语言实现大转盘抽奖算法,通过具体的实例向大家展示,希望对大家学习PHP抽奖有所帮助. 流程:1.拼装奖项数组,2.计算概率,3.返回中奖情况 代码如下:中奖概率 ' v ' ...

  4. PHP+AJAX开发幸运大转盘抽奖

    PHP+AJAX开发幸运大转盘抽奖,通过奖品库存.中奖次数来计算中奖概率 奖品设置 $prizes = array( 0 => array( "id" => 0, // ...

  5. Java 实现大转盘抽奖

    需要用到 JAVA中的Random()函数 注意:大转盘抽奖各奖项中奖概率之和为 1.奖品列表中的概率为累加概率,需要按照添加进列表的顺序进行累加,添加顺序不做要求. 实际中使用需要考虑奖品数量限制等 ...

  6. C#保留2位小数几种场景总结 游标遍历所有数据库循环执行修改数据库的sql命令 原生js轮盘抽奖实例分析(幸运大转盘抽奖) javascript中的typeof和类型判断

    C#保留2位小数几种场景总结   场景1: C#保留2位小数,.ToString("f2")确实可以,但是如果这个数字本来就小数点后面三位比如1.253,那么转化之后就会变成1.2 ...

  7. 【Vue.js游戏机实战】- Vue.js实现大转盘抽奖总结

    大家好!先上图看看本次案例的整体效果. 实现思路: Vue component实现大转盘组件,可以嵌套到任意要使用的页面. css3 transform控制大转盘抽奖过程的动画效果. 抽奖组件内使用钩 ...

  8. php大转盘抽奖

    抽奖大转盘演示:http://www.sucaihuo.com/php/3301.html function getRand($proArr, $proCount) { $result = ''; $ ...

  9. PHP新写的大转盘抽奖源码

    中奖概率 抽奖大转盘演示:http://www.sucaihuo.com/php/3301.html function getRand($proArr, $proCount) { $result = ...

随机推荐

  1. html中的a标签特例讲解

    将自己的博客写成了一个大杂烩了,遇见啥问题就写啥问题.但是当看见自己网页的成品就特别的开心. 还记得看见过的一个故事,说是收费的东西好还是免费的东西好,有一个答案是最让我记忆深刻的.回复的一个答案是: ...

  2. 4、Web应用程序中的安全向量 -- over-posting(重复提交)

    模型绑定是ASP.NET MVC提供的强大功能,可遵照命名约定将输入元素映射到模型属性,从而极大地简化了处理用户输入的过程,然而,这也成为了攻击的另一种没接,给攻击者提供了一个填充模型属性的机会,右下 ...

  3. 关闭HTC手机充电时屏幕一直亮着绿色电池的办法

            首先必须取得ROOT权限,用RE文件管理器进system/bin/把最下面的zchgd文件改名字或者直接删掉重新启动手机充电时就不会亮屏了,电池图标也不会出来,再用数据线连电脑充电吧, ...

  4. 9.创建一个三角形类,成员变量三边,方法求周长,创建类主类A来测试它。

    package com.hanqi.test; public class Triangle { private double a,b,c; public Triangle(double d,doubl ...

  5. 41个有关Python的小技巧【转】

    内容来自网络整理 1. 拆箱 拆箱 2. 拆箱变量交换 拆箱变量交换   3. 扩展拆箱(只兼容python3) 扩展拆箱(只兼容python3) 4. 负数索引 负数索引 5. 负数索引 负数索引 ...

  6. USB LPT 端口映射

    如何设置端口映射(以将LPT1端口映射到共享名为CutePDFW的虚拟打印机上为例),命令如下: NET USE LPT1: \\wcjxixi-d022704\CutePDFW /Persisten ...

  7. js解析php返回的json数据无法获取length的问题分析

    1.问题出现的过程,js解析php json_encode 的数据,无法获取长度信息,提示undefined   debug:       首先打印查看了php encode后的数据,返现最外层是一个 ...

  8. oracle 备份操作流程

    Oracle 库表导出步骤 例如,要导出wcsr用户下的所有表,已知用户名/密码:wcsr/wcsr_woer 首先打开cmd.exe 其次创建备份目录,最好目录不包含空格和中文名 md d:\ora ...

  9. iosiOStextView实现文字高度自适应

    跟为textView设置提示性文字一样   需要在textView的代理方法中实现如下 如有偏差  请谅解 定义UITextView,实现UITextViewDelegate: -(UITextVie ...

  10. iosOC/C不可变数组排序

    //1.回顾C数组排序 int a[6] = {1,4,3,5,6,2}; //选择 for (int i =0; i<6-1; i++) { for (int j = i+1; j<6; ...