js版贪吃蛇
来源:互联网 发布:java多线程和单线程 编辑:程序博客网 时间:2024/04/26 17:25
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <title>game</title> <script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.min.js"></script> <style> .head{background-color:red;} .fish{background-color:blue;} .tail{background-color:green;} td{background-color:#fff;} </style> <script type="text/javascript"> var w=h=10,t,tail=[],speed=200;//宽高以及速度 var d="right"; var length=1; $(document).ready(function(){ $(this).find("body").append("<table border='0' cellspacing='1px' cellpadding='2px' bgcolor='#e0e0e0'></table>"); for(var i=0;i<h;i++){ $(this).find("table").append("<tr height='20'></tr>"); for(var j=0;j<w;j++){ $(this).find("table tr").last().append("<td id='td_"+i+"_"+j+"' width='20'></td>"); } } $(this).find("td").first().addClass("head"); setFish(); t = window.setInterval(move,speed); $(this).keydown(function(event){ if(event.which==37){ if(d == "right") return; d = "left"; }else if(event.which==38){ if(d == "down") return; d = "up"; }else if(event.which==39){ if(d == "left") return; d = "right"; }else if(event.which==40){ if(d == "up") return; d = "down"; }else{ return; } window.clearInterval(t); if(move()){ t = window.setInterval(move,speed); } }); }); function move(){ var headTd = $("td[className='head']"); var headId = headTd.attr("id"); var arr = headId.split("_"); var nextHead,nextId; if(d=="left"){ nextId = "td_"+arr[1]+"_"+(parseInt(arr[2])-1); }else if(d=="up"){ nextId = "td_"+(parseInt(arr[1])-1)+"_"+arr[2]; }else if(d=="right"){ nextId = "td_"+arr[1]+"_"+(parseInt(arr[2])+1); }else if(d=="down"){ nextId = "td_"+(parseInt(arr[1])+1)+"_"+arr[2]; } nextHead = $("#"+nextId); if(typeof nextHead.attr("id")=='undefined'){ window.clearInterval(t); alert("失败"); return false; }else if(nextHead.hasClass("tail")&&nextHead.attr("id")!=tail[0].attr("id")){ window.clearInterval(t); alert("失败"); return false; } headTd.addClass("tail"); tail[tail.length] = headTd; if(nextHead.hasClass("fish")){ nextHead.removeClass("fish"); length++; if(length>Math.sqrt(w*h)){ window.clearInterval(t); alert("恭喜!成功过关"); return false; } setFish(); }else{ tail[0].removeClass("tail"); tail = tail.slice(1); } nextHead.addClass("head"); headTd.removeClass("head"); return true; } function setFish(){ var x = Math.floor(Math.random()*w); var y = Math.floor(Math.random()*h); $("#td_"+x+"_"+y).addClass("fish"); } </script> </head> <body> </body></html>