<style type="text/css">
.food{background-color:#0000ff;}
.snake{background-color:ff0000;}
</style>
<script language="javascript">
<!--
var Rows=20; // 设置行
var Cells=20; // 设置列
var Num=15; // 地图的大小
var BorderWidth=5; // 地图的边框
var Speed=5000; // 设置蛇的速度
var timeobj=100; // 设置延迟时间
var stat=0;
function CMap(){ // 创建地图
var BW=eval(Cells*Num+2*BorderWidth); // 设置列的边框宽度
var BH=eval(Rows*Num+2*BorderWidth); // 设置行的边框宽度
document.body.innerHTML='<div id=MainMap style=position:absolute;left:'+(document.body.clientWidth-BW)/2+';top:'+(document.body.clientHeight-BH)/2+';width:'+BW+';height:'+BH+';border-width:'+BorderWidth+';border-style:inset;border-color:#0000cc></div>';
Map=new Array(); // 设置地图数组
for(y=0;y<Rows;y++){
Map[y]=new Array();
for(x=0;x<Cells;x++){
Map[y][x]='0';
}
}
Sx=parseInt(Math.random()*Cells); // 设置蛇的X轴位置
Sy=parseInt(Math.random()*Rows); // 设置蛇的Y轴位置
cSnake();
createFood();
AllDiv=MainMap.all.tags('DIV');
AllSpan=MainMap.all.tags('SPAN');
}
function cSnake(){ // 创建蛇
MainMap.innerHTML+='<div x='+Sx+' y='+Sy+' style=position:absolute;left:'+Sx*Num+';top:'+Sy*Num+';width:'+Num+';height:'+Num+';overflow:hidden class=Snake></div>'
Map[Sy][Sx]='S'
}
function createFood(){ // 创建食物
Fx=parseInt(Math.random()*Cells); // 设置食物的位置
Fy=parseInt(Math.random()*Rows); // 设置食物的位置
if(Map[Fy][Fx]=='0'){
MainMap.innerHTML+='<span style=position:absolute;left:'+Fx*Num+';top:'+Fy*Num+';width:'+Num+';height:'+Num+';overflow:hidden class=Food></span>';
Map[Fy][Fx]='F';
}
else createFood(); // 创建食物
}
function Move() // 设置移动
{
Sx+=GoX;
Sy+=GoY;
if((Sy<0||Sy>=Rows)||(Sx<0||Sx>=Cells))
{restartGame();} // 判断蛇头前面撞到边界后重新开始游戏
else
{
if(Map[Sy][Sx]=="F") MoveEateFood();
else MoveNoFood();
}
}
function restartGame() // 重新开始游戏
{
var msg=confirm("游戏失败!确定重新开始吗?");
if(msg) window.location.reload();
}
function MoveNoFood() // 前面是空白地方
{
Map[AllDiv[0].y][AllDiv[0].x]='0';
AllDiv[0].removeNode(true);
cSnake();
setTimeout('Move();',timeobj);
}
function MoveEateFood() // 前面是食物
{ cSnake();
AllSpan[0].removeNode(true);
createFood();
setTimeout('Move();',timeobj);
}
document.οnkeydοwn=KeyDown;
function KeyDown(){ // 操作键盘
Key=event.keyCode
switch(Key){
case 37:Dir(-1,0);break // 向左移动
case 39:Dir(1,0);break // 向右移动
case 38:Dir(0,-1);break // 向上移动
case 40:Dir(0,1);break} // 向下移动
return false
}
function Dir(x,y) // 方向控制
{
GoX=x;
GoY=y;
if(stat==0)
{
stat=1;
Move();
}
}
οnlοad=CMap;
//-->
</script>