A2421864133 2017-01-16 14:04 采纳率: 16.7%
浏览 899
已结题

求大神帮看一下该怎么改,急!!!

 现在代码排除不了数组中第一位和最后一位就是会显示0号和42号,实际选中的位置到不了应该被选中的位置,就是选中的位置和显示的图片不一样
var index=1,           //当前亮区位置
    prevIndex=41,          //前一位置
    Speed=300,           //初始速度
    Time,            //定义对象
    arr = [],         //初始化数组
    zjarr = [],
    EndIndex=0,           //决定在哪一格变慢
    ptb,     //获取tb对象 
    cycle=0,           //转动圈数   
    EndCycle=0,           //计算圈数
    flag=false,           //开始转动标志 
    quick=0,           //加速
    maxnum=41,      // 最大开奖号码
    btnplays;

/*
* 删除左右两端的空格
*/
 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(){

    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==3){
     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++;
}
 var selectedIndex = ',';//记录已经抽中的下标
 arr.splice(41,1);


    //结束转动并选中号码
    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 = 1;
        }
        selectedIndex += index + ',';//记录已经抽中的下标
        var zjnum = index;
        alert("恭喜 "+zjnum+"号中奖");
        var imgpath = "image/" + zjnum + ".jpg"
        $("#xingyun").attr("src", imgpath);
        $("#yizj").append("<span>" + zjnum + ",</span>");
    }
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">



body{ padding-top:10px; background-image:url(image/bg2.jpg);}

恭祝大家,新年快乐!



  • 写回答

4条回答

  • devmiao 2017-01-16 15:55
    关注

    代码很长,建议调试下,就知道了。

    评论

报告相同问题?

悬赏问题

  • ¥15 关于#网络安全#的问题:求ensp的网络安全,不要步骤要完成版文件
  • ¥15 可否在不同线程中调用封装数据库操作的类
  • ¥20 使用Photon PUN2解决游戏得分同步的问题
  • ¥15 微带串馈天线阵列每个阵元宽度计算
  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据
  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 Centos / PETGEM