求救,贪食蛇程序挑错。。。。
<html>
<head>
<title>我的贪食蛇</title>
</head>
<body>
<script>
<!--
//创建地图
var num = 15;//地图最小单位:格 的宽度
var cols = 30;//地图的列数
var rows = 20;//地图的行数
var borderwidth = 5;//边框宽度
var map = new Array();//游戏地图标记
function createmap(){
bw = cols * num + 2 * borderwidth;
bh = 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:5px double #0000ff"></div>';
//初始化游戏地图,标记空地 0
for(y=0;y<rows;y++){
map[y] = new Array();
for(x=0;x<cols;x++){
map[y][x] = '0';
}
}
sx = parseInt(Math.random()*cols);//随即生产蛇的位子
sy = parseInt(Math.random()*rows);
createfood();//创建食物
createsnake();//创建蛇
alldiv = mainmap.all.tags('div');//等同document.getElementById("mainmap").getElementsByTagName("div")
allspan = mainmap.all.tags('span');
}
onload = createmap;
//创建食物
function createfood(){
fx = parseInt(Math.random()*cols);//随即产生食物x坐标
fy = parseInt(Math.random()*rows);//随即产生食物y坐标
if(map[fy][fx]=='0'){//只能在空地上产生食物
mainmap.innerHTML = '<span style="position:absolute;left:'+fx*num+';top:'+fy*num+';width:'+num+';height:'+num+';background-color:green;overflow:hidden"></span>';
map[fy][fx]='f';//标记食物
}else{
createfood();
}
}
//创建蛇的位置
function createsnake(){
mainmap.innerHTML += '<div x='+sx+' y='+sy+' style="position:absolute;left:'+sx*num+';top:'+sy*num+';width:'+num+';height:'+num+';background-color:red;overflow:hidden"></div>';
map[sy][sx]= 's';//蛇标记
}
//键盘监听
document.onkeydown = keydown;
function keydown(){
key = event.keyCode;
switch(key){
case 37://左
dir(-1,0);
break;
case 38://上
dir(0,-1);
break;
case 39://右
dir(1,0);
break;
case 40://下
dir(0,1);
break;
}
return false;
}
//开始游戏
var start = 0;
function dir(x,y){
gox = x;
goy = y;
if(start==0){
speedUp();//控制蛇的速度
start = 1;
move();
}
}
//移动
function move(){
sx+=gox;
sy+=goy;
if(sx<0 || sx>cols || sy<0 || sy>rows){//遇到边界
move1();
}else{
snakefont = map[sy][sx];//判断蛇前方是什么 0空地 f食物 s自己
switch(snakefont){
case '0'://前方是空地
move2();
break;
case 'f'://前方是食物
move3();
break;
case 's'://前方是自己
move1();
break;
}
}
}
//重新开始
function move1(){
restart = window.confirm("GAME OVER");
if(restart){
window.location.reload();//刷新页面
}
}
//蛇前面是空地
var speed = 200;//蛇的速度
function move2(){
map[alldiv[0].y][alldiv[0].x] = '0';//走过一格,地图标记空地
alldiv[0].removeNode(true);//删除第一个节点
createsnake();
setTimeout('move()',speed);
}
//前方是食物
function move3(){
createsnake();//蛇增加一节
allspan[0].removeNode(true);//删除食物
createfood();
setTimeout('move()',speed);
}
//控制蛇的速度
function speedUp(){
speed -= 5;
if(speed>5){
setTimeout('speedUp()',5000);
}
}
-->
</script>
</body>
</html>
-------------------------------------------------------------------------------------------------------
请前辈们运行一下这个程序,为什么老是
map[alldiv[0].y][alldiv[0].x] = '0'
到底哪里错了啊。