js實現貪吃蛇小遊戲


<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>

   .bo{
    height: 20px;
    width: 20px;
    background-color: blue;
    opacity: 0.5;


   }
#box{
height: 500px;
width: 500px;
background-color:black;
position: relative;

}
#box1{

position: absolute;
top: 0px;
left: 0px; 


}
#box2{

position: absolute; 
top: 0px;
left: 30px; 

}
#box3{


position: absolute;
   top: 0px;
left: 60px; 


}

</style> 
</head>
<!-- box 地圖 -->
<div id="box">

<!-- bo蛇 -->
<div class="bo" id="box1"></div>
<div class="bo" id="box2"></div>
<div class="bo" id="box3"></div>

</div> 


<body>
<script  type="text/javascript">
 var oBox=document.getElementById('box');
 
 var  arr=document.getElementsByClassName('bo');
  oBox.innerHTML= oBox.innerHTML+'<div class="bo"></div>';
  //定義蛇的初始位置
 arr[0].style.left=0+"px";
  arr[0].style.top=0+"px";
arr[1].style.left=20+"px";
 arr[1].style.top=0+"px";
     arr[2].style.left=40+"px";
            arr[2].style.top=0+"px";
            //第一個隨機食物
             arr[3].style.position='absolute';
            var x1=parseInt(25*Math.random());
            var y1=parseInt(25*Math.random());
            arr[3].style.backgroundColor='red';
             arr[3].style.left=x1*20+"px";
            arr[3].style.top=y1*20+"px";
          var x=40;
          var flag=0;   
          var y=0;
           //吃的過程
             function chi(){
              if (x==x1*20&&y==y1*20) {
              arr[arr.length-1].style.backgroundColor='blue';
              oBox.innerHTML= oBox.innerHTML+'<div class="bo"></div>';
              arr[arr.length-1].style.position='absolute';
                     x1=parseInt(25*Math.random());
                      y1=parseInt(25*Math.random());
                  arr[arr.length-1].style.left=x1*20+"px";
                   arr[arr.length-1].style.backgroundColor='red';
                     arr[arr.length-1].style.top=y1*20+"px";
              }
             }
          
           
 
              var timer=setInterval(function(){
           //flag=0;執行向右
              if(flag==0){
                 x=x+20;
         if(x==500){
          x=0;
         }
 
              for (var i = 0; i < arr.length-2; i++) {
          arr[i].style.top=arr[i+1].style.top;
          arr[i].style.left=arr[i+1].style.left;
         }
                    
         arr[arr.length-2].style.left=x+"px";
       
         } 
         //flag=1;執行向下
            if(flag==1){
            y=y+20;
         if(y==500){
          y=0;
         }
              for (var i = 0; i < arr.length-2; i++) {
         
          arr[i].style.left=arr[i+1].style.left;
          arr[i].style.top=arr[i+1].style.top;
         }
                    
         arr[arr.length-2].style.top=y+"px";
       
         } 
         //flag=2;執行向左
         if(flag==2){
            x=x-20;
         if(x==-20){
          x=480;
         }
              for (var i = 0; i < arr.length-2; i++) {
         
          arr[i].style.left=arr[i+1].style.left;
          arr[i].style.top=arr[i+1].style.top;
         }
                    
         arr[arr.length-2].style.left=x+"px";
    
         }
         //falg=3;執行向上
              if(flag==4){
            y=y-20;
         if(y==-20){
          y=480;
         }
              for (var i = 0; i < arr.length-2; i++) {
         
          arr[i].style.left=arr[i+1].style.left;
          arr[i].style.top=arr[i+1].style.top;
         }
                    
         arr[arr.length-2].style.top=y+"px";
       
         } 
         
        for (var i = 0; i < arr.length-2; i++) {
         
          if(arr[i].style.left==arr[arr.length-2].style.left&&arr[i].style.top==arr[arr.length-2].style.top){
          clearInterval(timer);


          alert("遊戲結束,刷新網頁重新開始");
         


          }
         }
               chi();
               //按上下左右鍵改變flag值 js裏面的鍵40代表下鍵,37左鍵,39右鍵,38,上
             document.onkeydown=function(){


        if(40== event.keyCode){
          if(flag==4){
          flag=4;
          }
          else{
          flag=1;}
        }
          if(37== event.keyCode){
           if(flag==0){
          flag=0;
          }
          else{
          flag=2;}
        
        }
           if(39== event.keyCode){
            if(flag==2){
          flag=2;
          }
          else{
          flag=0;}
        
        }
            if(38== event.keyCode){
            if(flag==1){
          flag=1;
          }
          else{
          flag=4;}
        }
        
             }




             
  
      },500);
</script>
 

</body>


</html>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章