js实现大转盘抽奖游戏实例

本文实例讲述了js实现大转盘抽奖游戏。分享给大家供大家参考。具体实现方法如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<title>js抽奖</title>

<style type="text/css">

td{width:50px;height:50px;border:3px solid #ccc;text-align:center;vertical-align:middle}

</style>

</head>

<body>

<table id="tb">

<tr>

<td>1</td><td>2</td><td>3</td><td>4</td><td>5</td>

</tr>

<tr>

<td>16</td><td></td><td></td><td></td><td>6</td>

</tr>

<tr>

<td>15</td><td></td><td></td><td></td><td>7</td>

</tr>

<tr>

<td>14</td><td></td><td></td><td></td><td>8</td>

</tr>

<tr>

<td>13</td><td>12</td><td>11</td><td>10</td><td>9</td>

</tr>

</table>

<p></p>

请输入1-16其中一位整数,代表要停止的位置<input id="txtnum" value="12" type="text" /><input type="button" value="开始" onclick="StartGame()" />

<script type="text/javascript">

/*

* 删除左右两端的空格

*/

function Trim(str){

return str.replace(/(^\s*)|(\s*$)/g, "");

}

/*

* 定义数组

*/

function GetSide(m,n){

//初始化数组

var arr = [];

for(var i=0;i<m;i++){

arr.push([]);

for(var j=0;j<n;j++){

arr[i][j]=i*n+j;

}

}

//获取数组最外圈

var resultArr=[];

var tempX=0,

tempY=0,

direction="Along",

count=0;

while(tempX>=0 && tempX<n && tempY>=0 && tempY<m && count<m*n)

{

count++;

resultArr.push([tempY,tempX]);

if(direction=="Along"){

if(tempX==n-1)

tempY++;

else

tempX++;

if(tempX==n-1&&tempY==m-1)

direction="Inverse"

}

else{

if(tempX==0)

tempY--;

else

tempX--;

if(tempX==0&&tempY==0)

break;

}

}

return resultArr;

}

var index=0, //当前亮区位置

prevIndex=0, //前一位置

Speed=300, //初始速度

Time, //定义对象

arr = GetSide(5,5), //初始化数组

EndIndex=0, //决定在哪一格变慢

tb = document.getElementById("tb"), //获取tb对象

cycle=0, //转动圈数

EndCycle=0, //计算圈数

flag=false, //结束转动标志

quick=0; //加速

function StartGame(){

cycle=0;

flag=false;

EndIndex=Math.floor(Math.random()*16);

//EndCycle=Math.floor(Math.random()*4);

EndCycle=1;

Time = setInterval(Star,Speed);

}

function Star(num){

//跑马灯变速

if(flag==false){

//走五格开始加速

if(quick==5){

clearInterval(Time);

Speed=50;

Time=setInterval(Star,Speed);

}

//跑N圈减速

if(cycle==EndCycle+1 && index==EndIndex){

clearInterval(Time);

Speed=300;

flag=true; //触发结束

Time=setInterval(Star,Speed);

}

}

if(index>=arr.length){

index=0;

cycle++;

}

//结束转动并选中号码

if(flag==true && index==parseInt(Trim(document.getElementById("txtnum").value))-1){

quick=0;

clearInterval(Time);

}

tb.rows[arr[index][0]].cells[arr[index][1]].style.border="3px solid red";

if(index>0)

prevIndex=index-1;

else{

prevIndex=arr.length-1;

}

tb.rows[arr[prevIndex][0]].cells[arr[prevIndex][1]].style.border="3px solid #ccc";

index++;

quick++;

}

/*

window.onload=function(){

Time = setInterval(Star,Speed);

}

*/

</script>

</body>

</html>

希望本文所述对大家的javascript程序设计有所帮助。

以上是 js实现大转盘抽奖游戏实例 的全部内容, 来源链接: utcz.com/z/315182.html

回到顶部