PHP幸運大轉盤源碼,支援ThinkPHP,大轉盤thinkphp

來源:互聯網
上載者:User

PHP幸運大轉盤源碼,支援ThinkPHP,大轉盤thinkphp
HTML代碼

代碼是基於thinkphp的,如果你的不是,修改裡面的url路徑就行了

 
  1. charset="utf-8">
  2. name="keywords"content="幸運大轉盤,cnsecer.com"/>
  3. name="description"content="幸運大轉盤"/>
  4. 幸運大轉盤
  5. type="text/css">
  6. .demo{width:417px; height:417px; position:relative; margin:50pxauto}
  7. #disk{width:417px; height:417px; background:url(__STATIC__/images/disk.jpg) no-repeat}
  8. #start{width:163px; height:320px; position:absolute; top:46px; left:130px;}
  9. #start img{cursor:pointer}
  10. src="http://cdn.bootcss.com/jquery/1.11.0/jquery.min.js">
  11. type="text/javascript"src="__STATIC__/js/jQueryRotate.2.2.js">
  12. type="text/javascript"src="__STATIC__/js/jquery.easing.min.js">
  13. type="text/javascript">
  14. $(function(){
  15. $("#startbtn").click(function(){
  16. lottery();
  17. });
  18. });
  19. function lottery(){
  20. $.ajax({
  21. type:'POST',
  22. url:'{:U(\'game/run\')}',//提交地址 改為你自己的
  23. dataType:'json',
  24. cache:false,
  25. error:function(){
  26. alert('出錯了!');
  27. returnfalse;
  28. },
  29. success:function(json){
  30. $("#startbtn").unbind('click').css("cursor","default");
  31. var a = json.angle;//角度
  32. var p = json.prize;//獎項
  33. $("#startbtn").rotate({
  34. duration:3000,//轉動時間
  35. angle:0,
  36. animateTo:1800+a,//轉動角度
  37. easing: $.easing.easeOutSine,
  38. callback:function(){
  39. var con = confirm('恭喜你,中得'+p+'\n還要再來一次嗎?');
  40. if(con){
  41. lottery();
  42. }else{
  43. returnfalse;
  44. }
  45. }
  46. });
  47. }
  48. });
  49. }
  50. id="main">
  51. class="msg">
  52. class="demo">
  53. id="disk">
  54. id="start">src="__STATIC__/images/start.png"id="startbtn">
  55. id="footer">

幕後處理代碼
 
  1. php
  2. namespaceHome\Controller;
  3. useThink\Controller;
  4. classGameControllerextendsBaseController{
  5. publicfunction index(){
  6. $this->display("index");
  7. }
  8. publicfunction run(){
  9. $proArr = array();
  10. //v 是中獎機率 相加之後最好為100的整數倍 id為獎品編號 min max 分別為最大和最小角度
  11. $prize_arr = array(
  12. '0'=> array('id'=>1,'min'=>1,'max'=>29,'prize'=>'一等獎','v'=>0),
  13. '1'=> array('id'=>2,'min'=>302,'max'=>328,'prize'=>'二等獎','v'=>0),
  14. '2'=> array('id'=>3,'min'=>242,'max'=>268,'prize'=>'三等獎','v'=>0),
  15. '3'=> array('id'=>4,'min'=>182,'max'=>208,'prize'=>'四等獎','v'=>0),
  16. '4'=> array('id'=>5,'min'=>122,'max'=>148,'prize'=>'五等獎','v'=>0),
  17. '5'=> array('id'=>6,'min'=>62,'max'=>88,'prize'=>'六等獎','v'=>0),
  18. '6'=> array('id'=>7,'min'=>array(32,92,152,212,272,332),'max'=>array(58,118,178,238,298,358),'prize'=>'七等獎','v'=>100)
  19. );
  20. //擷取隨機獎品
  21. foreach($prize_arr as $v){
  22. $proArr[$v['id']]= $v['v'];
  23. }
  24. $rid = $this->getRand($proArr);//根據機率擷取獎項id
  25. $res = $prize_arr[$rid-1];//中獎項
  26. // dd($res);die;
  27. $min = $res['min'];
  28. $max = $res['max'];
  29. if($res['id']==7){//七等獎
  30. $i = mt_rand(0,5);
  31. $result['angle']= mt_rand($min[$i],$max[$i]);
  32. }else{
  33. $result['angle']= mt_rand($min,$max);//隨機產生一個角度
  34. }
  35. $result['prize']= $res['prize'];
  36. echo json_encode($result);
  37. }
  38. protectedfunction getRand($proArr){
  39. $result ='';
  40. //機率數組的總機率精度
  41. $proSum = array_sum($proArr);
  42. //機率數組迴圈
  43. foreach($proArr as $key => $proCur){
  44. $randNum = mt_rand(1, $proSum);
  45. if($randNum <= $proCur){
  46. $result = $key;
  47. break;
  48. }else{
  49. $proSum -= $proCur;
  50. }
  51. }
  52. unset ($proArr);
  53. return $result;
  54. }
  55. }

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.