前端转盘抽奖代码(css3转盘抽奖)
微信小程序,通过摇一摇实现大转盘抽奖的效果代码怎么写?
建议你还是不要自己写,可以通过直接用插件实现。
自己写会存在很多问题,会出现bug的
php大转盘的获奖概率是怎么算的
php中奖概率算法,可用于刮刮卡,大转盘等抽奖算法。用法很简单,代码里有详细注释说明,一看就懂
$proCur) {
$randNum = mt_rand(1, $proSum);
if ($randNum = $proCur) {
$result = $key;
break;
} else {
$proSum -= $proCur;
}
}
unset ($proArr);
return $result;
}
/*
* 奖项数组
* 是一个二维数组,记录了所有本次抽奖的奖项信息,
* 其中id表示中奖等级,prize表示奖品,v表示中奖概率。
* 注意其中的v必须为整数,你可以将对应的 奖项的v设置成0,即意味着该奖项抽中的几率是0,
* 数组中v的总和(基数),基数越大越能体现概率的准确性。
* 本例中v的总和为100,那么平板电脑对应的 中奖概率就是1%,
* 如果v的总和是10000,那中奖概率就是万分之一了。
*
*/
$prize_arr = array(
'0' = array('id'=1,'prize'='平板电脑','v'=1),
'1' = array('id'=2,'prize'='数码相机','v'=5),
'2' = array('id'=3,'prize'='音箱设备','v'=10),
'3' = array('id'=4,'prize'='4G优盘','v'=12),
'4' = array('id'=5,'prize'='10Q币','v'=22),
'5' = array('id'=6,'prize'='下次没准就能中哦','v'=50),
);
/*
* 每次前端页面的请求,PHP循环奖项设置数组,
* 通过概率计算函数get_rand获取抽中的奖项id。
* 将中奖奖品保存在数组$res['yes']中,
* 而剩下的未中奖的信息保存在$res['no']中,
* 最后输出json个数数据给前端页面。
*/
foreach ($prize_arr as $key = $val) {
$arr[$val['id']] = $val['v'];
}
$rid = get_rand($arr); //根据概率获取奖项id
$res['yes'] = $prize_arr[$rid-1]['prize']; //中奖项
unset($prize_arr[$rid-1]); //将中奖项从数组中剔除,剩下未中奖项
shuffle($prize_arr); //打乱数组顺序
for($i=0;$i
如何用PHP制作有奖品(数量)的转盘抽奖?
这个不是有key值么,抽到后把这个key值的给unset()
unset() 方法
注意如果你使用 unset() 方法,它是不会改变其他的键(key),如果你想对其他的键(key)重新整理排序,可以使用 array_values()。
?php
$array = array(0 = "a", 1 = "b", 2 = "c");unset($array[1]);
//↑ 你要删除的数组元素值的键print_r($array);?
输出结果:
Array (
[0] = a [2] = c)
flash脚本高手进,关于flash转盘抽奖的设计
第一帧:
stop (); //画面停止在第一帧
btnmessage._visible = false;// 名为btnmessage的元素不隐藏
isbool = 0; //设置变量isbool为0
q = 1.565217E+001; //设置变量Q
t = random(100) + 100; //设置变量t为随机在100-200之间
v = 0; //设置变量为0
vMax = 10; //设置变量10
a = 8.000000E-001; //设置变量
b = 0; //设置变量0
retcode = 0; //设置变量0
randomkey = 0; //设置变量0
var my_lv = new LoadVars();//声明变量my_lv为LoadVars类型并初始化
my_lv.onLoad = function (success)//当my_lv加载信息的时候执行内容
{
retcode = int(my_lv.retCode); //设置变量为my_lv的retCode变量,并将值转化为整型数字
randomkey = int(my_lv.randomkey);//同上道理一样
b = int(my_lv.randomvalue); //同上道理一样
if (retcode == 1) //如果retcode值是1执行内容
{
isbool = 1; //变量赋值为1
} // end if
if (retcode == 2) //如果retcode值是2执行内容
{ //变量的等于下面的这几个字符串
outPut = "您抽奖的次数已用完,谢谢您的参与!";
btnmessage._visible = true; //btnmessage元素显示
} // end if
if (retcode == 3) //如果retcode值是3执行内容
{ //变量的等于下面的这几个字符串
outPut = "请您先登录然后玩转盘游戏!";
btnmessage._visible = true; //btnmessage元素显示
} // end if
};
第二帧:
p.onEnterFrame = function () //p元素按照帧频率每秒不段的执行内容
{
if (isbool == 1) //如果isbool的值为1执行内容
{
btnmessage._visible = false; //btnmessage元素隐藏
if (b != 0) //如果变量b的值不为0执行内容
{
rotation = this._rotation = this._rotation + v; //rotation和p的旋转角度等于p的原本旋转角度+上v的值
if (t 0) //如果t的值大于0执行内容
{
--t; t的值现在马上递减1
if (v vMax) //如果v的值大于vMax的值执行内容
{
v = v + a; //v的值递增a的值。或者说是v的值在原本的基础上加上a的值
} // end if
}
else if (v 1)//如果v不大于vMax的话,判断v是否大于1,如果是执行内容
{
v = v - a;//V的值在原本的基础上减掉a的值
}
else if (parseInt(rotation) != parseInt(b)) //如果v不大于vMax,v也不大于1的话,将rotation和b转换为数字整型,并判断rotation是不是不和b相等,如果不等的话执行内容
{
}
else //如果以上的判断都不成立的话执行内容
{
v = 0; //变量等于0
var my_lv2 = new LoadVars(); //声明一个新的LoadVars类型为my_lv2
my_lv2.onLoad = function (success) //当my_lv2加载数据的时候执行内容
{
outPut = my_lv2.itemname; //变量的值等于my_lv2的itemname的值
};
my_lv2.load("InsertItem.aspx?dickey=" + randomkey); //my_lv2加载的文件的路径是InsertItem.aspx?dickey="加上randomkey所得到的字符串
this._rotation = int(rotation / q) * q; //p元素的旋转角度等于rotation除q并去掉小数后在乘q
btn._visible = true; //brn元素显示
btnmessage._visible = true; //btnmessage元素显示
delete this.onEnterFrame; //q元素不再以帧频的速度执行onEnterFrame内的脚本
outPut = "Load......."; //变量设置等于这个字符串
} // end else if
} // end else if
}
else if (isbool == 2) //如果上一个判断不成立,判断isbool是否等于2,是的话执行内容
{
delete this.onEnterFrame; //q元素不再以帧频的速度执行onEnterFrame内的脚本
btnmessage._visible = true; //btnmessage元素显示
} // end else if
};
我想用VB制作一个抽奖型的转盘
这是一个转盘 转到的位置是随机的 具体奖品需要你自己定 我就不帮你了..... 这一句 If c 95 Then Timer1.Interval = 0 这个95 改的越小 停的越快,转到的位置重复的几率也就越大 . 代码细看看, 数值都是活的 可以根据自己需要改.
'添加控件 timer1 command1 line1
Dim x1%, y1%
Dim a As String
Private Sub Command1_Click()
a = 0
Timer1.Interval = 50
End Sub
Private Sub form_load()
Me.AutoRedraw = True
x1 = Me.Width \ 2
y1 = (Me.Height - 405) \ 2
Line1.x1 = x1: Line1.y1 = y1
Me.DrawWidth = 5
Me.Circle (x1, y1), 3000
Line1.BorderWidth = 5
Line1.BorderColor = QBColor(14)
End Sub
Private Sub Timer1_Timer()
Randomize
c = Int((100) * Rnd + 1)
a = a + 1
If a 24 Then Timer1.Interval = 100
If a 40 Then Timer1.Interval = 200
If a 48 Then
Timer1.Interval = 300
If c 95 Then Timer1.Interval = 0
End If
b = (3.14 / 8) * a
Line1.X2 = Line1.x1 + (3000 * Sin(b))
Line1.Y2 = Line1.y1 - (3000 * Cos(b))
End Sub
js转盘抽奖求解释里面部分代码的原理
应该是界面效果切换代码
costheta = Math.cos(rad);
sintheta = Math.sin(rad);
是js数学函数
el.style.filter 是IE的滤镜函数,其他浏览器应该无效的
window.navigator.userAgent.indexOf("Chrome")=1)
是判断当前使用的浏览器函数,根据不同浏览器调用不同代码来实现效果
其他的不太清楚了