作者lchwzu (lch)
看板Ajax
标题[问题] 修改完成到一半的语法
时间Sat Jan 3 02:00:12 2009
最近做网页的时候想到之前有留一些搜寻到的js,然後想说把它改一改来
用,可是学艺不精,改到一半不知道该怎麽继续下去...。
以下是一个迷宫游戏:
var X,Y;
maze=new Array()
maze[0]="口口口S口口口口口口口口口口口口口"
maze[1]="口口口 口口 口口口口口"
maze[2]="口口E 口口口 E口口口"
maze[3]="口口口口口口口口口口口口口口口口口"
var check=true;
for(var i=0;i<=maze.length-1;i++)
if(maze[i].length!=maze[0].length)
check=false;
if(!check)
{alert('Error:迷宫长度不等')
window.close()
}
function compile(w)
{switch(w)
{case "口"
return"wall.gif";
case " "
return"black.gif";
case "E"
return"goal.gif";
case "S"
return"man.gif";
}
}
document.write('<center>')
for(var i=0;i<=maze.length-1;i++)
{for(var j=0;<=maze[0].length-1;j++)
{document.write('<img src="'+compile(maze[i].charAt(j))+'" name="no'+j+'_'+i+'">')
if(maze[i].charAt(j)=="S"){X=j;Y=i}
}
}
function doLeft(w)
{if(X+w>=maze[0].length||X+w<0)
return;
if(maze[Y].charAt(X+w)=="口")return;
eval('document.no'+X+'_'+Y+'.src="black.gif";')
eval('document.no'+(X+w)+'_'+Y+'.src="man.gif";')
if(maze[Y].charAt(X+w)=="E")
WIN();
X+=w;
}
function doTop(w)
{if(Y+w>=maze.length||Y+w<0)
return;
if(maze[Y+w].charAt(X)=="口")return;
eval('document.no'+X+'_'+Y+'.src="black.gif";')
eval('document.no'+X+'_'+(Y+w)+'src="man.gif";')
if(maze[Y+w].charAt(X)=="E")
WIN();
}
function WIN()
{alert('恭喜过关!!!')
location.href='
http://tw.yahoo.com'
}
function kdown()
{if(event.keyCode==37)
doLeft(-1);
if(event.keyCode==38)
doTop(-1);
if(event.keyCode==39)
doLeft(1);
if(event.keyCode==40)
doTop(1);
window.event.returnValue=false;
}
document.onkeydown=kdown
也就是说,S为一开始的起点,走到E时过关,并且可以超连结到
http://tw.yahoo.com
,想问说是否有办法让S可以走到三个以上不同的终点,然後能连到不同的网站去(且
是开另一个新视窗来开网页),走到终点也不会让那个终点消失,而且可以继续走到其
它点,然後连结出不同网页。
不知道能不能这样问?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 122.124.105.80