A2421864133 2017-01-15 14:01 采纳率: 16.7%
浏览 876
已采纳

以下代码要添加排除已抽中的数字改怎么改,急!!!

 var index=1,           //当前亮区位置
    prevIndex=0,          //前一位置
    Speed=300,           //初始速度
    Time,            //定义对象
    arr = [],         //初始化数组
    zjarr = [],
    EndIndex=0,           //决定在哪一格变慢
    ptb,     //获取tb对象 
    cycle=0,           //转动圈数   
    EndCycle=0,           //计算圈数
    flag=false,           //开始转动标志 
    quick=0,           //加速
    maxnum=41,      // 最大开奖号码
    btnplays;
    /*     //跑马灯音效
    var runingmic=document.getElementById("runingmic");
    runingmic.volume=0.5;
    //中奖音效
    var pausemic=document.getElementById("pausemic");
    pausemic.volume=1.0;*/
/*
* 删除左右两端的空格
*/
 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;
}



function StartGame(){
    maxnum = 41;
    /*//开始播放跑马灯音效
    runingmic.play();*/
    //$("#maxnumst").val();
    /*if(maxnum == "")
    {
    alert("请设置参与抽奖的最大号码");
    $("#maxnumst").addClass("playcurr");
    return;
    }
    maxnum = maxnum.trim();
    var reg = new RegExp("^[0123456789]+$");
    if (!reg.test(maxnum) || maxnum < 1)
    {
    alert("请正确设置参与抽奖的最大号码");
    $("#maxnumst").addClass("playcurr");
    return;
    }*/
    ptb = document.getElementById("ptb");
    btnplays = $("#btnplays");


 $("#maxnumst").attr("disabled",true);
 arr = GetSide(12,11);

 clearInterval(Time);
 cycle=0;
//  flag=true;
 EndIndex=Math.floor(Math.random()*16);

 EndCycle=1;
 btnplays.val("抽奖中...");
 btnplays.attr("disabled",true);
 Speed = 300;
 Time = setInterval(Star,Speed);
}

//跑马灯变速
function Star(){

      //走五格开始加速
     if(quick==15){
         clearInterval(Time);
         Speed=20;
         flag=true;
         Time=setInterval(Star,Speed);
     }
    if(index>=arr.length){
        index=0;
        cycle++;
    }

    ptb.rows[arr[index][0]].cells[arr[index][1]].className="playcurr";
    if(index>0){
        prevIndex=index-1;
    }else{
        prevIndex=arr.length-1;
    }
    ptb.rows[arr[prevIndex][0]].cells[arr[prevIndex][1]].className="playnormal";
    index++;
    quick++;

}

//结束转动并选中号码
function choujiang(){
    if(flag==false){
        return;
    }
    flag = false;
    quick=0;
    cycle=0;
    clearInterval(Time);


    btnplays.attr("disabled",false);
    btnplays.val("开始抽奖");
    //console.log(index);
    var zjnum = index;

    //alert("恭喜 "+zjnum+"号中奖");
    var imgpath = "image/"+zjnum+".jpg"
    $("#xingyun").attr("src",imgpath);
    $("#yizj").append("<span>"+ zjnum + ",</span>");



    // var yizinumb = $("#yizj").innerHTML();
 //yizinumb = yizinumb + zjnum + ",";
// $("#yizj").innerHTML(yizinumb);
/*//music
    runingmic.pause();
    pausemic.currentTime = 0;
        pausemic.play();*/

}

  • 写回答

3条回答 默认 最新

  • Go 旅城通票 2017-01-16 01:29
    关注
    
        var selectedIndex = ',';////记录已经抽中的下标
        //结束转动并选中号码
        function choujiang() {
            if (flag == false) {
                return;
            }
            flag = false;
            quick = 0;
            cycle = 0;
            clearInterval(Time);
    
    
            btnplays.attr("disabled", false);
            btnplays.val("开始抽奖");
            if (selectedIndex.replace(/^,|,$/g, '').split(',').length >= arr.length) { alert('所有奖项已经抽了一遍~~~');return false}
            //判断是否已经抽出过此下标
            while (selectedIndex.indexOf(',' + index + ',') != -1) {//已抽中此下标则取下一个直到没抽中过的
                index++;
                if (index >= arr.length) index = 0;
            }
            selectedIndex += index + ',';////记录已经抽中的下标
            var zjnum = index;
            //alert("恭喜 "+zjnum+"号中奖");
            var imgpath = "image/" + zjnum + ".jpg"
            $("#xingyun").attr("src", imgpath);
            $("#yizj").append("<span>" + zjnum + ",</span>");
        }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 矩阵加法的规则是两个矩阵中对应位置的数的绝对值进行加和
  • ¥15 活动选择题。最多可以参加几个项目?
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?
  • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)
  • ¥20 怎么在stm32门禁成品上增加查询记录功能
  • ¥15 Source insight编写代码后使用CCS5.2版本import之后,代码跳到注释行里面
  • ¥50 NT4.0系统 STOP:0X0000007B
  • ¥15 想问一下stata17中这段代码哪里有问题呀