php丢色子,PHP制作的掷色子点数抽奖游戏实例(代码)

本文介绍了一个使用PHP和jQuery构建的掷骰子抽奖游戏实例。通过点击按钮触发AJAX请求,后台根据预设的奖品概率分配点数,再返回给前端进行动画展示,包括色子滚动和奖品运动动画,增加了抽奖过程的趣味性。整个流程涉及防重复点击、JSON数据交互和前端动画效果的实现。
摘要由CSDN通过智能技术生成

PHP制作的掷色子点数抽奖游戏实例,通过掷色子点数来达到抽奖的效果,为抽奖活动增添一些趣味性。

2711218fa2cd1d187e9ab0944d1ed74b.png

我们将在html页面中写下如下的html结构代码,.wrap用来放置色子和提示信息,#prize则是用来放置奖品的。

  • 开始
  • 现金100元
  • 泰迪熊宝宝
  • 谢谢参与
  • iphone 5s
  • 笔记本电脑
  • 谢谢参与
  • 单反相机
  • 轿车
  • 谢谢参与

我们使用jquery来完成前端动作,包括掷色子动画,奖品逐步运动动画,其中有防重复点击知识、ajax交互知识,动画提示知识。整个操作流程可简单概括为:点击色子->向dice.php发送ajax请求->完成掷色子动画->提示点数->逐步运动动画到最终奖品位置停止->完成抽奖。

$(function(){

$("#dice").click(function(){

$("#prize li .mask").remove();

$(".wrap").append("

var dice2 = $("#dice2");

$.getJSON("dice.php",function(json){

var num1 = json[0];

var num2 = json[1];

diceroll(dice1,num1);//掷色子1动画 11 diceroll(dice2,num2);//掷色子2动画 12 var num = parseInt(num1) parseInt(num2);

$("#msg").css("top","-10px").fadeIn(500).text(num '点').animate({top:'-50px'},'1000').fadeOut(500);

roll(0, num);//逐步运动动画 15 });

});

});

dice.php文件代码:根据配置好的奖品概率,得到总点数,根据总点数进行两粒色子的点数分配,最后返回给前端页面两粒色子的点数

$(function(){

$("#dice").click(function(){

$("#prize li .mask").remove();

$(".wrap").append("

var dice2 = $("#dice2");

$.getJSON("dice.php",function(json){

var num1 = json[0];

var num2 = json[1];

diceroll(dice1,num1);//掷色子1动画 11 diceroll(dice2,num2);//掷色子2动画 12 var num = parseInt(num1) parseInt(num2);

$("#msg").css("top","-10px").fadeIn(500).text(num '点').animate({top:'-50px'},'1000').fadeOut(500);

roll(0, num);//逐步运动动画 15 });

});

});18 dice.php19 根据配置好的奖品概率,得到总点数,根据总点数进行两粒色子的点数分配,最后返回给前端页面两粒色子的点数20 21 //设置中奖概率 22 $prize_arr = array(

'2' => array('id'=>2,'v'=>10),

'3' => array('id'=>3,'v'=>20),

'4' => array('id'=>4,'v'=>5),

'5' => array('id'=>5,'v'=>5),

'6' => array('id'=>6,'v'=>20),

'7' => array('id'=>7,'v'=>2),

'8' => array('id'=>8,'v'=>3),

'9' => array('id'=>9,'v'=>20),

'10' => array('id'=>10,'v'=>0),

'11' => array('id'=>11,'v'=>10),

'12' => array('id'=>12,'v'=>5),

);

36 foreach ($prize_arr as $key => $val) {

$arr[$val['id']] = $val['v'];

}

40 $sum = getRand($arr); //根据概率获取奖项id,得到总点数

42 //分配色子点数 43 $arrs = array(

'2' => array(array(1,1)),

'3' => array(array(1,2)),

'4' => array(array(1,3),array(2,2)),

'5' => array(array(1,4),array(2,3)),

'6' => array(array(1,5),array(2,4),array(3,3)),

'7' => array(array(1,6),array(2,7),array(3,4)),

'8' => array(array(2,6),array(3,5),array(4,4)),

'9' => array(array(3,6),array(4,5)),

'10' => array(array(4,6),array(5,5)),

'11' => array(array(5,6)),

'12' => array(array(6,6))

);

57 $arr_rs = $arrs[$sum];

$i = array_rand($arr_rs);//随机取数组 59 $arr_a = $arr_rs[$i];

shuffle($arr_a);//打乱顺序 61 echo json_encode($arr_a);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值