javascript实现贪吃蛇代码
在习作的过程中尝试着贪吃蛇游戏用JS实现了。竟然成功了。
思路:使用10px*10px的div层担当“像素”,然后使用40*40矩阵160个“像素”构成了游戏的界面。
下面是代码:
复制代码 代码如下:
// JavaScript Document
alert("键盘的方向键控制方向,空格键暂停。nLIFE制作n");
// 添加基本的图形块,即160个10 * 10的层组成的二维矩阵
var rowindex = new Array(40);
var colindex;
var cell;
// 图像单元的定义
var backcolor = "black";
for(var i = 0; i < 40; i ++ )
{
colindex = new Array(40);
for(var j = 0; j < 40; j ++ )
{
// 设置每个单元的属性
cell = teElement("div");
groundColor = backcolor;
h = "10px";
ht = "10px";
tion = "absolute";
= "" + (j * 10 + 100) + "px";
= "" + (i * 10 + 100) + "px";
flow = "hidden";
// 添加单元
ndChild(cell);
// 填充列组
colindex[j] = cell;
}
// 填充行组
rowindex[i] = colindex;
}
// 贪吃蛇类的.定义,基于基本的图像单元
function snake()
{
// 定义蛇的身体,并初始化
color = "white";
s = new Array();
for(var i = 20; i < 25; i ++ )
{
rowindex[20][i]groundColor = color;
// rowindex的第一个坐标是行标,第二是列标
(rowindex[20][i]);
}
// 定义蛇的头部坐标,第一个是行标, 第二个是列标
= [20, 20];
// 定义蛇的前进方向,0代表左、1代表下、2代表右、3代表上
ct = 0;
}
// 移动模块
function move()
{
// 根据前进方向计算头部的坐标
switch(ct)
{
case 0 :
[1] -= 1;
break;
case 1 :
[0] += 1;
break;
case 2 :
[1] += 1;
break;
case 3 :
[0] -= 1;
break;
}
// 判断是否越界
if([0] < 0 || [0] > 39 || [1] < 0 || [1] > 39)
{
// 如果越界则返回false
return false;
}
else
// 如果没有越界则检查下一个元素的性质,如果是食物则吃掉,并再生成食物。如果是其自身则返回false
if([0] == food[0] && [1] == food[1])
{
// 如果是食物
rowindex[[0]][[1]]groundColor = color;
ift(rowindex[[0]][[1]]);
score++;
makefood();
return true;
}
else
// 如果是它自身
if(rowindex[[0]][[1]]groundColor == color)
{
if(rowindex[[0]][[1]] == ())// 如果是它的尾部
{
ift(rowindex[[0]][[1]]);
return true;
}
// 如果不是尾部
return false;
}
// 以上情况都不是
()groundColor = backcolor;
rowindex[[0]][[1]]groundColor = color;
ift(rowindex[[0]][[1]]);
return true;
}
= move;
// 生成食物模块
var foodcolor = "blue";
var food = [20, 17];
rowindex[food[0]][food[1]]groundColor = foodcolor;
function makefood()
{
var tempfood;
var tempelement;
out :
while(true)
{
tempfood = [d(om() * 39), d(om() * 39)];
tempelement = rowindex[tempfood[0]][tempfood[1]];
for(var i in s)
{
if(s[i] == tempelement)
{
// 如果随机生成的食物在蛇的身体上,则跳出继续
continue out;
}
// 生成食物成功
break out;
}
}
food = tempfood;
rowindex[food[0]][food[1]]groundColor = foodcolor;
}
// 转向模块和暂停模块
ydown = turnorstop;
function turnorstop(event)
{
if(t != undefined)
{
if(parseInt(ode)==32)
{
alert("休息一下");
}
else
{
switch(parseInt(ode))
{
case 37 :
if(ct!=2)
ct = 0;
break;
case 38 :
if(ct!=1)
ct = 3;
break;
case 39 :
if(ct!=0)
ct = 2;
break;
case 40 :
if(ct!=3)
ct = 1;
break;
}
}
}
else
{
if(parseInt(h)==32)
{
alert("休息一下");
}
else
{
switch(parseInt(h))
{
case 37 :
if(ct!=2)
ct = 0;
break;
case 38 :
if(ct!=1)
ct = 3;
break;
case 39 :
if(ct!=0)
ct = 2;
break;
case 40 :
if(ct!=3)
ct = 1;
break;
}
}
}
}
// 启动游戏模块
var s = new snake();
var time = 60;//蛇的速度指数
function startmove()
{
if(())
{
setTimeout(startmove, time);
}
else
{
alert("GAME OVERn您的分数是:"+score+"分");
}
}
//分数设置
var score = -1;
//运行游戏
startmove();
在网页中连接该JS文件即可。
-
生态性环艺设计发展的趋势
生态设计,也可以称作绿色设计或者生命周期设计或者环境设计。生态设计是指在设计过程中,遵从本地化、节约化、自然化等原则,尽最大可能考虑到环境因素,减少对环境的危害,实现设计的可持续性和再循环。下面是本站小编整理的生态性环艺设计发展的趋势相关内容,希望对你...
-
《培训调查意见表》Word表格
1.基本情况姓名性别年龄部门职务填表时间2.对以往培训的感知(可复选)(1)以往培训形式□课堂讲授式□小组讨论式□角色扮演式□游戏训练□案例分析(2)以往参加培训原因□自己要求□领导指派□企业要求□自费学习(3)培训后技能、绩效提升是否明显□明显提升□稍有提升□效...
-
平面设计自学小贴士
怎么自学平面设计是一个大学问,学得好的就可以进4A公司,前途光明。所以,接下来小编就和大家一起来了解关于自学平面设计的知识,希望对大家有帮助!自学平面设计的小贴士一、每天至少临摹一件作品,重点学习其版式构图、色彩搭配,不懂的马上上论坛问!(时间:1-2h)二、...
-
Word设置图片背景透明教程
在Word中将图片背景变成透明色,以达到更理想的融合效果。下面本站小编为大家收集整理了关于Word设置图片背景透明的方法,欢迎大家参考学习Word设置图片背景透明教程篇1①插入所需要处理的图片。②选中图片,选择“格式”选项,单击“颜色”选项,在“颜色”面板中选择...