贪吃蛇 ver 1.0

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>

<head>
<title>贪吃蛇 Ver 1.0</title>
<meta name="Generator" content="EditPlus">
<meta name="Author" content="Coke.Yang">
<meta name="Keywords" content>
<meta name="Description" content>
<style>
<!--
.map td      { width: 8; height: 8 }
body         { font-size: 8pt; font-family: Arial }
-->
</style>
<script language="JavaScript">
<!--
function Snake(){
//Property
this.mapMax = 25;
this.body = new Array();
this.arrow;
this.speed = 5;//1-10
this.Length = 1;
this.Mx=0;
this.My=0;
this.active=0;
//Method
this.createMap = function(){
 document.write("<table border=/"1/" cellspacing=/"0/" cellpadding=/"3/" style=/"border-collapse: collapse/" bordercolor=/"#8F8F8F/"><tr><td>");
 document.write("<table class=/"map/" border=/"1/" cellspacing=/"0/" cellpadding=/"0/" style=/"border-collapse: collapse/" bordercolor=/"#EFEFEF/">");
 for(y=1;y<=this.mapMax;y++){
  document.write("<tr>");
   for(x=1;x<=this.mapMax;x++){
    document.write("<td id=x"+x+"y"+y+" type=/"Map/"></td>");
   }
  document.write("</tr>");
 }
 document.write("</table></td></tr></table>");
}
this.createSnake = function(){
 this.body[0] = new Array(this.random(),this.random());
 this.set(this.body[0][0],this.body[0][1],"Snake");
}
this.createFood = function(){
 var food = new Array(this.random(),this.random());
 if(this.getType(food[0],food[1])!="Snake"){
  this.set(food[0],food[1],"Food");
 }else{
  this.createFood();
 }
}
this.turn = function(Arrow){
 if(this.Length>1){
 if(Arrow=="L" & this.Arrow!="R") this.Arrow = Arrow;
 if(Arrow=="R" & this.Arrow!="L") this.Arrow = Arrow;
 if(Arrow=="U" & this.Arrow!="D") this.Arrow = Arrow;
 if(Arrow=="D" & this.Arrow!="U") this.Arrow = Arrow;
 }else{
 this.Arrow = Arrow;
 }
 switch(this.Arrow){
  case "L":this.Mx=-1;this.My=0;break//左
  case "R":this.Mx= 1;this.My=0;break//右
  case "U":this.Mx=0;this.My=-1;break//上
  case "D":this.Mx=0;this.My= 1;break//下
 }
 this.active=1;
}
this.move = function(){
 if(this.active)
 {
 var x = this.body[0][0]+this.Mx;
 var y = this.body[0][1]+this.My;

 var moveTo = new Array(x,y);

 this.body.unshift(moveTo);
 if((this.getType(x,y)=="Snake"&this.Length>1)||this.getType(x,y)=="Null"){
  this.die();
 }
 if(this.getType(x,y)=="Food"){
  this.set(moveTo[0],moveTo[1],"Snake");
  this.eat();
 }

 if(this.getType(x,y)=="Map"){
 var temp = new Array();
  temp = this.body.pop();
  this.set(moveTo[0],moveTo[1],"Snake");
  this.set(temp[0],temp[1],"Map");
 }
 var point = "x"+this.body[0][0]+"y"+this.body[0][1];
 }

//-----------Debug----------------
var str="";
str="Length: "+this.Length+" Speed: "+this.speed;
document.all.ospan.innerText =str;
//-----------Debug----------------
}
this.eat = function(){
this.Length++;
this.createFood();
}

this.die = function(){
if(this.active){
window.alert("Sorry!你挂了!再来一次");
this.active = 0;
window.location.reload();
}
//this.reset();
}

this.getType = function(x,y){
 var point = "x"+x+"y"+y;
 if(x<1||x>this.mapMax||y<1||y>this.mapMax) return "Null";
 return document.getElementById(point).type;
}
this.set = function(x,y,type){
 var point = "x"+x+"y"+y;
 if(type == "Snake"){
  document.getElementById(point).bgColor="#787878";
 }
 if(type == "Map"){
  document.getElementById(point).bgColor="";
 }
 if(type == "Food"){
  document.getElementById(point).bgColor="#FF0000";
 }
 document.getElementById(point).type=type;
}
this.reset = function(){
//this.run();
}
this.random = function(){
return parseInt(Math.random()*this.mapMax)+1;
}
this.getSpeed = function(){
var x= parseInt(4-(this.speed/3))*100;
return x;
}
this.run = function(){
 this.createMap();
 this.createSnake();
 this.createFood();
}
}

var iSnake = new Snake();
iSnake.run();
document.οnkeydοwn=KeyDown;
window.setInterval("iSnake.move();",iSnake.getSpeed());
function KeyDown(){
 var Key=window.event.keyCode;
 switch(Key){
  case 37:iSnake.turn("L");break//左
  case 39:iSnake.turn("R");break//右
  case 38:iSnake.turn("U");break//上
  case 40:iSnake.turn("D");break//下
 }
return false
}

//-->
</script>
</head>

<body>
<FONT COLOR="#FF0000">·</FONT><span id="ospan"></span>
<font size="6" face="Arial Black">·</font> 蛇
<font size="6" face="Arial Black" color="#FF0000">·</font>食物
</body>

</html>

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值