天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

javascript 貪吃蛇實現代碼

在習作的過程中嘗試著貪吃蛇游戲用JS實現了。竟然成功了。
思路:使用10px*10px的div層擔當“像素”,然后使用40*40矩陣160個“像素”構成了游戲的界面。
下面是代碼:
復制代碼 代碼如下:
// JavaScript Document
alert("鍵盤的方向鍵控制方向,空格鍵暫停。/nLIFE制作/nhttp://blog.csdn.NET/anhulife");
// 添加基本的圖形塊,即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 = document.createElement("div");
cell.style.backgroundColor = backcolor;
cell.style.width = "10px";
cell.style.height = "10px";
cell.style.position = "absolute";
cell.style.left = "" + (j * 10 + 100) + "px";
cell.style.top = "" + (i * 10 + 100) + "px";
cell.style.overflow = "hidden";
// 添加單元
document.body.appendChild(cell);
// 填充列組
colindex[j] = cell;
}
// 填充行組
rowindex[i] = colindex;
}
// 貪吃蛇類的定義,基于基本的圖像單元
function snake()
{
// 定義蛇的身體,并初始化
this.bodycolor = "white";
this.bodys = new Array();
for(var i = 20; i < 25; i ++ )
{
rowindex[20][i].style.backgroundColor = this.bodycolor;
// rowindex的第一個坐標是行標,第二是列標
this.bodys.push(rowindex[20][i]);
}
// 定義蛇的頭部坐標,第一個是行標, 第二個是列標
this.head = [20, 20];
// 定義蛇的前進方向,0代表左、1代表下、2代表右、3代表上
this.direct = 0;
}
// 移動模塊
function move()
{
// 根據前進方向計算頭部的坐標
switch(this.direct)
{
case 0 :
this.head[1] -= 1;
break;
case 1 :
this.head[0] += 1;
break;
case 2 :
this.head[1] += 1;
break;
case 3 :
this.head[0] -= 1;
break;
}
// 判斷是否越界
if(this.head[0] < 0 || this.head[0] > 39 || this.head[1] < 0 || this.head[1] > 39)
{
// 如果越界則返回false
return false;
}
else
// 如果沒有越界則檢查下一個元素的性質,如果是食物則吃掉,并再生成食物。如果是其自身則返回false
if(this.head[0] == food[0] && this.head[1] == food[1])
{
// 如果是食物
rowindex[this.head[0]][this.head[1]].style.backgroundColor = this.bodycolor;
this.bodys.unshift(rowindex[this.head[0]][this.head[1]]);
score++;
makefood();
return true;
}
else
// 如果是它自身
if(rowindex[this.head[0]][this.head[1]].style.backgroundColor == this.bodycolor)
{
if(rowindex[this.head[0]][this.head[1]] == this.bodys.pop())// 如果是它的尾部
{
this.bodys.unshift(rowindex[this.head[0]][this.head[1]]);
return true;
}
// 如果不是尾部
return false;
}
// 以上情況都不是
this.bodys.pop().style.backgroundColor = backcolor;
rowindex[this.head[0]][this.head[1]].style.backgroundColor = this.bodycolor;
this.bodys.unshift(rowindex[this.head[0]][this.head[1]]);
return true;
}
snake.prototype.move = move;
// 生成食物模塊
var foodcolor = "blue";
var food = [20, 17];
rowindex[food[0]][food[1]].style.backgroundColor = foodcolor;
function makefood()
{
var tempfood;
var tempelement;
out :
while(true)
{
tempfood = [Math.round(Math.random() * 39), Math.round(Math.random() * 39)];
tempelement = rowindex[tempfood[0]][tempfood[1]];
for(var i in s.bodys)
{
if(s.bodys[i] == tempelement)
{
// 如果隨機生成的食物在蛇的身體上,則跳出繼續
continue out;
}
// 生成食物成功
break out;
}
}
food = tempfood;
rowindex[food[0]][food[1]].style.backgroundColor = foodcolor;
}
// 轉向模塊和暫停模塊
document.onkeydown = turnorstop;
function turnorstop(event)
{
if(window.event != undefined)
{
if(parseInt(window.event.keyCode)==32)
{
alert("休息一下");
}
else
{
switch(parseInt(window.event.keyCode))
{
case 37 :
if(s.direct!=2)
s.direct = 0;
break;
case 38 :
if(s.direct!=1)
s.direct = 3;
break;
case 39 :
if(s.direct!=0)
s.direct = 2;
break;
case 40 :
if(s.direct!=3)
s.direct = 1;
break;
}
}
}
else
{
if(parseInt(event.which)==32)
{
alert("休息一下");
}
else
{
switch(parseInt(event.which))
{
case 37 :
if(s.direct!=2)
s.direct = 0;
break;
case 38 :
if(s.direct!=1)
s.direct = 3;
break;
case 39 :
if(s.direct!=0)
s.direct = 2;
break;
case 40 :
if(s.direct!=3)
s.direct = 1;
break;
}
}
}
}
// 啟動游戲模塊
var s = new snake();
var time = 60;//蛇的速度指數
function startmove()
{
if(s.move())
{
setTimeout(startmove, time);
}
else
{
alert("GAME OVER/n您的分數是:"+score+"分");
}
}
//分數設置
var score = -1;
//運行游戲
startmove();

在網頁中連接該JS文件即可。

JavaScript技術javascript 貪吃蛇實現代碼,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 在线日本高清日本免费 | 中文字幕99香蕉在线 | 人妻超级精品碰碰在线97视频 | 猫咪最新破解版下载 | 少妇伦子伦情品无吗 | 国产爱豆剧果冻传媒在线 | 久青草国产在线视频 | 午夜伦理 第1页 | 亚洲精品久久午夜麻豆 | chinese极品嫩模videos | 国产一区二区青青精品久久 | 久久久擼擼擼麻豆 | 野花香在线观看免费观看大全动漫 | 亚洲 日韩 欧美 另类 蜜桃 | 亚洲欧美综合视频 | a级精品九九九大片免费看 A级韩国乱理伦片在线观看 | 国产精品夜夜春夜夜爽久久小 | 91久久偷偷做嫩草影院免费看 | 尤蜜网站在线进入免费 | 男人一生要读的书 | 快播欧美大片 | 国内精品伊人久久久久 | 一二三四在线播放免费观看中文版视频 | 色多多深夜福利免费观看 | 国产在线亚洲精品观 | 嗯啊快停下我是你老师啊H 嗯啊快拔出来我是你老师视频 | 34g污奶绵uk甩奶 | 琪琪电影午夜理论片YY6080 | 成人特级毛片 | 美国xaxwaswaskino 美国VICTORY DAY在线 | 桃花在线观看播放 | 国产超碰精久久久久久无码AV | 好想被狂躁A片免费久99 | 中国老太太xxx | 99国产精品成人免费视频 | 内射人妻无码色AV麻豆去百度搜 | 在线视频一区二区三区在线播放 | 伦理片天堂eeuss影院 | bbw美女与zooxx | 久久中文骚妇内射 | 欧美乱码卡一卡二卡四卡免费 |