2 a2421864133 A2421864133 于 2017.01.15 22:01 提问

以下代码要添加排除已抽中的数字改怎么改,急!!!
js
 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个回答

showbo
showbo   Ds   Rxr 2017.01.16 09: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>");
    }
A2421864133
A2421864133 大神,麻烦再问一下现在能抽中0号和最后一位,我需要把0和最后一位排除,我加完删除数组第一项和最后一项代码后还是能抽但中奖号不提示了,号码对应的图片也不显示改怎么改,谢谢
一年多之前 回复
strongerzhi
strongerzhi   2017.01.15 22:33

加入以下代码:

xzArray = [];
 function contains(arr, obj) {  
    var i = arr.length;  
    while (i--) {  
        if (arr[i] === obj) {  
            return true;  
        }  
    }  
    return false;  
}  

修改:

 //跑马灯变速
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++;
while(contains(index, xzArray))
{
        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;
zjArray = zjArray.push(index);
...以下不变
strongerzhi
strongerzhi while(contains(index, xzArray)) { index++; } 这一句改为contains(xzArray, index),如果你页面刷新的话,还是会选到一样的
一年多之前 回复
A2421864133
A2421864133 大神,不行啊,加完还是抽中的删不掉啊,麻烦您再看看,谢谢!!
一年多之前 回复
strongerzhi
strongerzhi   2017.01.15 22:31

最后一句是xzArray = xzArray.push(index);

A2421864133
A2421864133 大神,还是不行,我这需要抽中数字后显示对应的图片,加完代码后图片显示不了,把显示图片的代码放到xzArray = xzArray.push(index);之前还是能抽到一样的,麻烦大神再看看了,谢谢!!
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
PS怎么修改数字如 2011变为2013
情况一:这个数字是图片上有的,比如说2010年, 我想要改成2011年,那个”1“是图片上有的。 那直接导图进PS,然后按一下M 把”1“框起来,然后按V, 接下来按住ctrl和alt(一起按,按住别放),拖动那个虚线的框框, 移动到那个要修改的”0”上面。好了 完了。 情况二:这个数字图片上没有,比如说2012年要改2013年, 这个“3”是图片上没有的。那就导图进PS, 用情况一
程序员如何快速高效的改 bug?改bug都有哪些技巧?
1. 这个BUG偶尔才能出现,或者只在特定的环境里面出现。 2. 不知道BUG是什么问题造成。 3. 不知道BUG该怎么下手解决。 如果遇到这样的问题可能好几天都不得其解,搞得人焦头烂额,这时候就不要左改一下,右改一下了,而是要冷静下来,先理理头绪。 先根据情况试一下下面的步骤: 1. 换个环境试试 2. 换个用户试试 3. 换个操作方式试试 4. 换一下数据试试 5.
chinanet扫号器源码(易语言)
一切尽在不言中,默默地收走,记得相关的东西要记得改一下,怎么改自己百度去
2016天梯赛决赛题集 5-3 出租 (20分)
下面是新浪微博上曾经很火的一张图: 一时间网上一片求救声,急问这个怎么破。其实这段代码很简单,index数组就是arr数组的下标,index[0]=2 对应 arr[2]=1,index[1]=0 对应arr[0]=8,index[2]=3 对应 arr[3]=0,以此类推…… 很容易得到电话号码是18013820100。 本题要求你编写一个程序,为任何一个电话号码生成这段
如何修改一张图里的数字
一个不懂PS的亲戚,问我这个不太懂PS的大学生,如何用PS修改图片里的数字(嘿嘿嘿) 我尝试了一下,发现很简单,做了几张图当教程发过去了,在此也贴出来(没啥好写的,最近博主找工作各种碰壁。。。) 原图: 下面是操作步骤: 1.用PS打开图片 2.修改显示倍数 3.选取需要的数字 4.找到要修改的数字 5.将数字覆盖 6.保存
修改别人代码的原则
&amp;nbsp; &amp;nbsp; &amp;nbsp;工作过程中难免会涉及到修改或维护别人写的代码,如:代码原作者请假,离职,或相关的bug落到了你的头上,或用别人写的通用方法不爽时。 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 如果碰到修改别人的代码时,需要注意哪些事项呢? &amp;nbsp; &amp;nbsp; &amp;nbsp; 1)和原作者沟通:当用到了他人写的通用方法,又感觉不爽时。如果原作者还在,最好...
5-3 出租 (20分)
下面是新浪微博上曾经很火的一张图:一时间网上一片求救声,急问这个怎么破。其实这段代码很简单,index数组就是arr数组的下标,index[0]=2 对应 arr[2]=1,index[1]=0 对应 arr[0]=8,index[2]=3 对应 arr[3]=0,以此类推…… 很容易得到电话号码是18013820100。本题要求你编写一个程序,为任何一个电话号码生成这段代码 —— 事实上,只要生成
T3-凭证记账后仍能修改现金流项目
现象描述: 凭证记账后,在查询凭证界面找到凭证,点击流量按钮仍然可以修改现金流项目。 解决办法: 增加触发器进行判断 在GL_CashTable表中创建如下触发器: CREATE TRIGGER XJLL ON [dbo].[GL_CashTable] FOR INSERT, UPDATE, DELETE AS declare @jcjz varchar(20) selec
火线魔盒免费下载
只要你下载了他,击杀音乐,图标任你免费改,背景你怎么改就怎么改赶快下载吧
在PS里要怎么样才能把一个图片的数字改成另一个数字,还要看不出来?
转自: http://zhidao.baidu.com/link?url=fGmHdcGZu76sRD3VQWxoQwQIDps5qlATz2tVPcggPMndChrXq3c9OfxloMZxHsYEG9My1vKVBHShpl-0bH5Y2a 你可以这样做,首先在工具栏中选择图章工具,然后按下ALT键不放,用鼠标在数字周围的地方仿制(即:可以用图章工具选取一个区域),然后松开ALT键,接着就