网页游戏“贪食蛇”简析
2010-09-14 13:08:59 来源:WEB开发网 //创建蛇的初始位置,赋予初始值'S'
function CreateSnake()
{
//<div>表示蛇身,通过调用本函数,可以累加到若干个,蛇身变长
//注意 y 和 x 是“蛇”<div> 的自定义属性。一直保存着蛇尾(!)的当前位置
//初始时,蛇头、蛇尾是同一个位置
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' //Snake首字母
}
//创建食物的位置,赋予初始值'F'
//食物的初始位置不能与蛇的初始位置相同,只能在空地放置食物。
//若随机产生的2位置相同,则递归执行,直到不相同为止
function CreatFood()
{
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' //Food首字母
}
else
CreatFood() //递归
}
//主移动--判断蛇头前面的是什么
function Move()
{
Sx += GoX //自动行走,Map[Sy][Sx]为当前位置
Sy += GoY
if(Sy<0||Sy>=Rows) //碰墙,重新开始
Move1()
else
{
SnakeFront = Map[Sy][Sx]
if(SnakeFront=='0') //蛇前是空地
Move2()
else
{
if(SnakeFront=='F') //蛇前面是食物
Move3()
else
Move1()
}
}
}
更多精彩
赞助商链接