发布网友 发布时间:2022-04-23 14:17
共1个回答
热心网友 时间:2023-07-08 06:46
我这边有代码 是JSP的 你试验一下 需要有JSP环境,我试验了下,可以玩! <HTML> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>贪吃蛇</title> </head> <STYLE> .Food { background-color: green;} .Snake {background-color: red;} .grid {border:1px solid #000} </STYLE> <SCRIPT langyage="javascript"> var Rows=10 var Cells=15 var Num=20 //正方形格子的边长 var BorderWidth=5 var SpeedUp=5000 //创建地图 function CreateMap() { BW = eval(Cells*Num + 2*BorderWidth) //宽度 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:outset;border-color:#0000ff></div>' Map = new Array() //创建全局数组Map[] for(y=0; y<Rows; y++) { Map[y]=new Array() //创建全局二维数组Map[][],初始值为'0' for(x=0; x<Cells; x++) Map[y][x] = '0' //'0'值表示“空地” } //ShowGrid(); //显示地图内格子 Sx = parseInt(Math.random()*Cells) //创建全局变量Sx,赋予随机数 Sy = parseInt(Math.random()*Rows) //创建全局变量Sy,赋予随机数 CreateSnake() //生成蛇 - div CreatFood() //生成食物 - span AllDiv = MainMap.all.tags('DIV') //创建全局数组AllDiv,只有一个元素AllDiv[0]。MainMap是div的ID AllSpan = MainMap.all.tags('SPAN') //创建全局数组AllSpan,只有一个元素AllSpan[0] } //显示地图内格子 function ShowGrid() { for(r=0; r<Rows; r++) //行 { t = r*Num; for(c=0; c<Cells; c++) //列 { l = c*Num; MainMap.innerHTML += '<table style="position:absolute;left:'+ l +';top:'+ t +';width:'+Num+';height:'+Num+';" cellpadding=0 cellspacing=0><tr><td align=center valign=middle class=grid>O</td></tr><table>' } } } //创建蛇的初始位置,赋予初始值'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') //如果是空地 {