码迷,mamicode.com
首页 > 其他好文 > 详细

可选择关卡的贪吃蛇游戏

时间:2014-09-10 12:21:10      阅读:228      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   os   io   java   ar   for   

<!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>可选择关卡的贪吃蛇游戏石家庄拓展公司</title>
<meta http-equiv="content-type" content="text/html;charset=gb2312">
<body>
<!--把下面代码加到<body>与</body>之间-->
<script type="text/javascript"> 
  Star = {
    init:function(){
      var bigDiv = this.appendEle(this.addStyle(this.creatEle(),
        {w:900,h:600,p:absolute,t:10,l:500}));
      for(var i = 0; i<600/30;i++){
        Star.data.arrayAll[i] = [];
        for(var j = 0; j<900/30; j++){
          div = this.addStyle(this.creatEle(),{w:(!+[1,] ? 30 :28),h:(!+[1,] ? 30 :28),f:left,border:1px solid #666});
          div.setAttribute(number, i*30+j)
          this.appendEle(div,bigDiv)
          Star.data.arrayAll[i][j] = div;
        }
      }
      bigDiv = this.appendEle(this.addStyle(this.creatEle(),
        {w:900,h:600,p:absolute,t:10,l:500}));

      this.pushEleInSelect(Star.data.arrayAll[9][15],Star.data.arrayAll[9][14],Star.data.arrayAll[9][13])
      this.keyBoard.apply(this,arguments);
      this.appearPoint();
      this.leftGo();
    },
    appearPoint:function(){
      var arrayIn = [];
      var number;
      for(var i = 0; i<600; i++){
        if(!this.hasInArray(Star.data.arrayAll[parseInt(i/30)][i%30].getAttribute(‘number‘),Star.data.arraySelect)){
          arrayIn.push(Star.data.arrayAll[i])
        }
      }
      Star.data.foodNumber = number = parseInt(Math.random()*arrayIn.length);
      this.giveColor(number)
    },
    giveColor:function(number){
      var div = Star.data.arrayAll[parseInt(number/30)][number%30];
      Star.timeInterval.timeB = setInterval(function(){
        if(div.className == shanshuo){
          div.className = ‘‘
          div.style.backgroundColor = #fff
        }
        else{
          div.className = shanshuo;
          div.style.backgroundColor = #f00
        }
      },500)
    },
    disappearColor:function(){
      clearInterval(Star.timeInterval.timeB);
      Star.data.arrayAll[parseInt(Star.data.foodNumber/30)][Star.data.foodNumber%30].style.backgroundColor = ‘#f00‘;
    },
    hasInArray:function(number,array){
      for(var i in array){
        if(array[i] instanceof Array){
          if(this.hasInArray(number,array[i])){
            return true;
          }
        }
        if(array[i].getAttribute && array[i].getAttribute(number) == number) return true;
      }
      return false;
    },
    keyBoard:function(){
      var self = this;
      document.onkeydown = function(e){
        e = e? e : window.event;
        switch(e.keyCode){
          case 37: if(Star.keycode == 37 || Star.keycode == 39){return;};  self.leftGo(); break;
          case 38: if(Star.keycode == 38 || Star.keycode == 40){return;};  self.upGo();break;
          case 39: if(Star.keycode == 37 || Star.keycode == 39){return;};  self.rightGo();break;
          case 40: if(Star.keycode == 38 || Star.keycode == 40){return;};  self.downGo();break;
        }
      }
    },
    leftGo:function(){
      var div, number , self = this;
      Star.keycode = 37;
      clearInterval(Star.timeInterval.timeA)
      Star.timeInterval.timeA = setInterval(function(){
        number = Star.data.arraySelect[0].getAttribute(number);
        if(number%30<=0 || self.hasInArray(number-1,Star.data.arraySelect)){
          self.guanle();
        }
        else{
          if(Star.data.foodNumber == number-1){
            self.pushEleInSelect(Star.data.arrayAll[parseInt(Star.data.foodNumber/30)][Star.data.foodNumber%30]);
            self.disappearColor();
            self.appearPoint();
          }
          else{
            div = Star.data.arraySelect.pop();
            div.style.background = #fff;
            self.pushEleInSelect(Star.data.arrayAll[parseInt(number/30)][number%30-1]);
          }
        }
      },Star.timeInterval.speed)
    },
    upGo:function(){
      var div, number , self = this;
      Star.keycode = 38;
      clearInterval(Star.timeInterval.timeA)
      Star.timeInterval.timeA = setInterval(function(){
        number = parseInt(Star.data.arraySelect[0].getAttribute(number));
        if(parseInt(number/30)<=0 || self.hasInArray(number-30,Star.data.arraySelect)){
          self.guanle();
        }
        else{
          if(Star.data.foodNumber == number-30){
            self.pushEleInSelect(Star.data.arrayAll[parseInt(Star.data.foodNumber/30)][Star.data.foodNumber%30]);
            self.disappearColor();
            self.appearPoint();
          }
          else{
            div = Star.data.arraySelect.pop();
            div.style.background = #fff;
            self.pushEleInSelect(Star.data.arrayAll[parseInt(number/30)-1][number%30]);
          }
        }
      },Star.timeInterval.speed)
    },
    rightGo:function(){
      var div, number , self = this;
      Star.keycode = 39;
      clearInterval(Star.timeInterval.timeA)
      Star.timeInterval.timeA = setInterval(function(){
        number = parseInt(Star.data.arraySelect[0].getAttribute(number));
        if(parseInt(number%30)>=29 || self.hasInArray(number+1,Star.data.arraySelect)){
          self.guanle();
        }
        else{
          if(Star.data.foodNumber == number+1){
            self.pushEleInSelect(Star.data.arrayAll[parseInt(Star.data.foodNumber/30)][Star.data.foodNumber%30]);
            self.disappearColor();
            self.appearPoint();
          }
          else{
            div = Star.data.arraySelect.pop();
            div.style.background = #fff;
            self.pushEleInSelect(Star.data.arrayAll[parseInt(number/30)][number%30+1]);
          }
        }
      },Star.timeInterval.speed)
    },
    downGo:function(){
      var div, number , self = this;
      Star.keycode = 40;
      clearInterval(Star.timeInterval.timeA)
      Star.timeInterval.timeA = setInterval(function(){
        number = parseInt(Star.data.arraySelect[0].getAttribute(number));
        if(parseInt(number/30)>=19 || self.hasInArray(number+30,Star.data.arraySelect)){
          self.guanle();
        }
        else{
          if(Star.data.foodNumber == number+30){
            self.pushEleInSelect(Star.data.arrayAll[parseInt(Star.data.foodNumber/30)][Star.data.foodNumber%30]);
            self.disappearColor();
            self.appearPoint();
          }
          else{
            div = Star.data.arraySelect.pop();
            div.style.background = #fff;
            self.pushEleInSelect(Star.data.arrayAll[parseInt(number/30)+1][number%30]);
          }
        }
      },Star.timeInterval.speed)
    },
    guanle:function(){
      alert(撞墙了,总分: + (Star.data.arraySelect.length-3) * parseInt(1000 / Star.timeInterval.speed));
      location.reload();
    },
    creatEle:function(tag){
      var tagName = tag || DIV
      return document.createElement(tagName)
    },
    appendEle:function(ele,father){
      var father = father || document.body || document.documentElement
      father.appendChild(ele)
      return ele;
    },
    addStyle:function(ele,css){
      for(var i in css){
        switch(i){
          case b : ele.style.background = css[i];       break;
          case l : ele.style.left       = css[i]+px;  break;
          case r : ele.style.right      = css[i]+px;  break;
          case t : ele.style.top        = css[i]+px;  break;
          case d : ele.style.down       = css[i]+px;  break;
          case p : ele.style.position   = css[i];       break;
          case w : ele.style.width      = css[i]+px;  break;
          case h : ele.style.height     = css[i]+px;  break;
          case f : ele.style.cssFloat   = css[i];  ele.style.styleFloat   = css[i];     break;
          default  : ele.style[i]         = css[i];       break;
        }
      }
      return ele;
    },
    pushEleInSelect:function(){
      for(var i = 0; i<arguments.length; i++){
        Star.data.arraySelect = [arguments[i]].concat(Star.data.arraySelect)
        this.addStyle(arguments[i],{b:#f00})
      }
    }
  }
  Star.data={
    arrayAll : [],
    arraySelect:[],
    newPoint:null,
    foodNumber:0
  }
  Star.timeInterval={
    timeA:null,
    timeB:null
  }
  Star.keycode = 0;

  window.onload = function(){
    var select = Star.creatEle(select);
    var optionDefault = Star.creatEle(option);
    optionDefault.innerHTML = 请选择关卡
    Star.appendEle(optionDefault,select)
    Star.addStyle(select,{w:200,h:30,p:absolute,left:40%,top:40%})
    for(var i = 0 ; i <10 ; i++){
      var option = Star.creatEle(option);
      option.innerHTML =  + (i+1) + 
      Star.appendEle(option,select);
    }
    Star.appendEle(select)
    select.onchange = function(){
      selectValue = select.options[select.selectedIndex].value || select.options[select.selectedIndex].innerHTML
      var number = selectValue.match(/\d+/)[0]
      Star.timeInterval.speed = parseInt(200/number);
      Star.addStyle(select,{display:none});
      Star.init();
    }
  }
</script>
</body>
</html>

 

可选择关卡的贪吃蛇游戏

标签:style   blog   http   color   os   io   java   ar   for   

原文地址:http://www.cnblogs.com/youtianxia/p/3964015.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!