<script type="text/javascript">
alert("因为未设定按键属性,所以请勿点击除上下左右外的其他按键,以防出错!");
function $(x){return(document.getElementById(x));}
var ln=new Array();
var rndx=0;
var rndy=0;
var prndx=0;
var prndy=0;
var total=3;
var status=0;
var way=39;
window.onload=function()
{
var show=$("show");
for(x=1;x<11;x++)
{
for(y=1;y<17;y++)
{
var nd=document.createElement("div");
nd.className="A-1";
nd.X=x;
nd.Y=y;
nd.id=String(x)+y;
show.appendChild(nd);
}
}
try
{
for(i=0;i<total;i++)
{
ln[i]=document.createElement("div");
ln[i].X=0;
ln[i].Y=0;
}
ln[0].X=1;
ln[0].Y=3;
ln[1].X=1;
ln[1].Y=2;
ln[2].X=1;
ln[2].Y=1;
for(i=0;i<total;i++)
{
var nd=$(String(ln[i].X)+ln[i].Y);
nd.style.background="#FF0000";
}
}catch(e)
{
alert("这里有错误!");
}
rnd();
tpress();//问题区域;
document.onkeyup =kbpress;
}
function kbpress()
{
var keycode=event.which||event.keyCode;
if(keycode=="" || !keycode)
{
keycode=way;
}
var nnd=$(String(ln[total-1].X)+ln[total-1].Y);
var plnx=new Array();
var plny=new Array();
for(i=0;i<total-1;i++)
{
plnx[i]=ln[i].X;
plny[i]=ln[i].Y;
}
for(i=0;i<total-1;i++)
{
ln[i+1].X=plnx[i];
ln[i+1].Y=plny[i];
}
if(status==1)
{
ln[total]=document.createElement("div");
ln[total].X=prndx;
ln[total].Y=prndy;
prndx=0;
prndy=0;
total++;
status=0;
} //交换蛇的位置
var x=ln[0].X;
var y=ln[0].Y;
switch(keycode)
{
case 37:
way=37;
if(y==1)
{
alert("您撞墙上了,失败啊!");
window.close();
}
else
{
for(i=1;i<total;i++)
{
if(ln[i].X==x)
{
if(ln[i].Y==(y-1))
{
alert("您碰撞到了自己,游戏结束!");
window.close();
}
}
}
ln[0].Y=(y-1);
y=ln[0].Y;
}
break;<!--******************left********************* -->
case 38:
way=38;
if(x==1)
{
alert("您撞墙上了,失败啊!");
window.close();
}
else
{
for(i=1;i<total;i++)
{
if(ln[i].Y==y)
{
if(ln[i].X==(x-1))
{
alert("您碰撞到了自己,游戏结束!");
window.close();
}
}
}
ln[0].X=(x-1);
x=ln[0].X;
}
break;<!--******************up********************* -->
case 39:
way=39;
if(y==16)
{
alert("您撞墙上了,失败啊!");
window.close();
}
else
{
for(i=1;i<total;i++)
{
if(ln[i].X==x)
{
if(ln[i].Y==(y+1))
{
alert("您碰撞到了自己,游戏结束!");
window.close();
}
}
}
ln[0].Y=(y+1);
y=ln[0].Y;
}
break;<!--******************right********************* -->
case 40:
way=40;
if(x==10)
{
alert("您撞墙上了,失败啊!");
window.close();
}
else
{
for(i=1;i<total;i++)
{
if(ln[i].Y==y)
{
if(ln[i].X==(x+1))
{
alert("您碰撞到了自己,游戏结束!");
window.close();
}
}
}
ln[0].X=(x+1);
x=ln[0].X;
}
break;<!--******************down********************* -->
default :
break;
} //判断是否违例
for(i=0;i<total;i++)
{
nd=$(String(ln[i].X)+ln[i].Y);
nd.style.background="#FF0000";
}
nnd.style.background="#CCCCCC";

if(ln[0].X==rndx && ln[0].Y==rndy)
{
prndx=rndx;
prndy=rndy;
rnd();
}
if(ln[total-1].X==prndx && ln[total-1].Y==prndy)
{
status=1;
}
}
function rnd()
{
rndx=Math.ceil(Math.random()*10);
rndy=Math.ceil(Math.random()*16);
var rndshow=$(String(rndx)+rndy);
rndshow.style.background="#669900";
}
//**********************************
function tpress()
{
kbpress();
t=setTimeout('tpress()',500);
}
//**********************************
</script>
<style>
*{ margin:0px; padding:0px; border:0px;}
.A-1{ 
width:50px; 
height:50px; 
background:#CCCCCC; 
border-bottom:#666666 2px solid;
border-right:#666666 2px solid;
border-left:#FFFFFF 2px solid;
border-top:#FFFFFF 2px solid;
float:left;
color:#CCCCCC;
font-family:"黑体";
font-size:13px;
display:inline;
}
</style>
<body bgcolor="#669900">
<div style="width:100%; height:100%;text-align:center;">
<div id="show" style="width:804px; height:500px;margin:0 auto; border:2px #000000 solid;"></div>
</div>
</body>关于时间函数   
小弟刚才单独做了下简单的调用实验
效果很好   嵌套在代码里有无效了 
 不知道哪里有问题
高手看看。
贪吃蛇的游戏。   没对FF做兼容  见谅