JavaScriptは貪食蛇を実現します.

2934 ワード

これは簡単です.境界を追加していません.端とつながっていると判断します.
<!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> new document </title>
    <script type="text/javascript">
    <!--
	function ab2(){
	  var x=new Array();
	  x[0]=34;
	  x.push(45); //    
	  x.unshift(99);  //    
	  //x.pop();    //    
	 // x.shift();	//    
	 x.sort();
	  alert(x);
	}
	//    
	function ab3(){
	     var ob={x:3,y:6};
	     alert(ob.x);
	}
	var sks=new Array();
	//var sk1={x:60,y:90};
	//var sk2={x:80,y:90};
	var sk3={x:100,y:90};
	//sks[2]=sk1;
	//sks[1]=sk2;
	sks[0]=sk3;
	var d=3;// 
	var newHead;//   
	var ax;var ay;
	function ab(){
	    clear();
	    paint();
	    changeHead();
	    eat();
	}
	//  
	function paint(){
	     for(var i=0;i<sks.length;i++){
	    var sk=document.createElement("<div id='k"+i+"'style='background-color:red;width:20px;height:20px;position:absolute;top:"+sks[i].y+"px;left:"+sks[i].x+"px'></div>");
	    document.body.appendChild(sk);
	    }
	}
	//   
	function clear(){
	     for(var i=0;i<sks.length;i++){
	       var k=document.getElementById("k"+i);
	       if(k){
	        document.body.removeChild(k);
	       }
	     }
	}
	//    
	 function createApple(){
	     ax=Math.floor(Math.random()*500);
	     ay=Math.floor(Math.random()*500);
	    var sk=document.createElement("<div id='ap'  style='background-color:#339900;width:20px;height:10px;position:absolute;top:"+ay+"px;left:"+ax+"px'></div>");
	    document.body.appendChild(sk);
	 }
	 //  
	 function eat(){
	    if(newHead.x<ax&&newHead.x>ax-20&&newHead.y<ay&&newHead.y>ay-20){
	       var ap=document.getElementById("ap");
	       document.body.removeChild(ap);
	       sks.unshift(newHead);
	       createApple();
	    }  else{
	     sks.unshift(newHead);
	     sks.pop();
	    }
	 }

	//  

	function change(){
	  var key=event.keyCode;
	  switch(key){
	    case 37:
	      d=1;
	      break;
	    case 38:
	      d=2;
	      break;
	    case 39:
	      d=3;
	      break;
	    case 40:
	      d=4;
	      break;
	  }
	}
     //   
     function changeHead(){
         var head=sks[0];
	 var hx=head.x;
	 var hy=head.y;
         switch(d){
	   case 1 :
	     hx=hx-5;
	     break;
	   case 2 :
	     hy=hy-5;
	     break;
	   case 3 :
	     hx=hx+5;
	     break;
	   case 4 :
	     hy=hy+5;
	     break;
	 }
	 newHead={x:hx,y:hy};
     }
	function start(){
	 window.setInterval("ab()",50);
	 createApple();
	}
	document.onkeydown=change;
    //-->
    </script>
 </head>

 <body onload="start()">

 </body>
</html>