當(dāng)前位置: 博客首頁 >> javacript >> 閱讀正文

js版貪吃蛇

作者: 鄭曉 分類: javacript 發(fā)布于: 2016-10-27 19:00 瀏覽:6,665 評論(10)


參考網(wǎng)上某代碼寫的js版貪吃蛇,貪吃蛇整個過程分為三部分,地圖的生成、食物的隨機顯示,蛇的顯示和移動。運行時按鍵盤上下左右進行方向控制,蛇頭撞到邊界或自己時游戲結(jié)束。目前已知的問題為:生成食物時未排除生成到蛇身上的可能。


(function() {
var t = null;
var map = null;
var food={x:0,y:0,div:null};
var snake={
//初始化時的蛇身部分
snakeBody : [[1,2,null], [2,2,null], [3,2,null], [4,2,null]],
direct : "right"
};
var config = {
width:200,
height:200,
px:10, //單位塊大小
mapColor:"#dddddd",
foodColor:"#555555",
snakeColor:"#666666",
position:'absolute',
speed:100
};
var showMap = function() {
var div = document.createElement("div");
div.style.width = config.width + "px";
div.style.height= config.height + "px";
div.style.backgroundColor = config.mapColor;
div.style.position = config.position;
document.getElementsByTagName("body")[0].appendChild(div);
map = div;
};
var showFood = function() {
var x = Math.floor(Math.random()*config.width/config.px);
var y = Math.floor(Math.random()*config.height/config.px);
food.x = x;
food.y = y;
if(food.div == null) {
var div = document.createElement("div");
div.style.width = config.px + "px";
div.style.height= config.px + "px";
div.style.backgroundColor = config.foodColor;
div.style.position = config.position;
div.style.left = x * config.px + "px";
div.style.top = y * config.px + "px";
map.appendChild(div);
food.div = div;
} else {
food.div.style.left = x * config.px + "px";
food.div.style.top = y * config.px + "px";
}
};
var showSnake = function() {
for(var i=0;i=config.width/config.px || snake.snakeBody[snakeLength-1][0]<0 || snake.snakeBody[snakeLength-1][1]>=config.height/config.px || snake.snakeBody[snakeLength-1][1] <0) { alert("game over"); clearInterval(t); return; } showSnake(); }; var startGame = function() { showMap(); showFood(); showSnake(); t = setInterval(function(){moveSnake()}, config.speed); window.onkeydown = function() { if(37 == event.keyCode) { snake.direct = "left"; } else if(38 == event.keyCode) { snake.direct = "up"; } else if(39 == event.keyCode) { snake.direct = "right"; } else if(40 == event.keyCode) { snake.direct = "down"; } } }; startGame() })()

運行截圖:
javascript-snake

? ? ? ?

本文采用知識共享署名-非商業(yè)性使用 3.0 中國大陸許可協(xié)議進行許可,轉(zhuǎn)載時請注明出處及相應(yīng)鏈接。

本文永久鏈接: http://m.yjfs.org.cn/js-snake.html

js版貪吃蛇:目前有10 條留言

用戶評論頭像 嚼蠟發(fā)表于 2017年11月09日 20:51[回復(fù)]

有點意思,我剛好路過

用戶評論頭像 zhaib發(fā)表于 2017年11月06日 16:02[回復(fù)]

挺好的

用戶評論頭像 有見識的麻花發(fā)表于 2017年05月10日 22:40[回復(fù)]

厲害了!

用戶評論頭像 嚴謹?shù)膸浉?/strong>:發(fā)表于 2016年12月17日 15:32[回復(fù)]

Nightsong.cc 晚歌的個人博客

用戶評論頭像 三五營銷發(fā)表于 2016年12月15日 15:42[回復(fù)]

挺好的,祝你快樂

用戶評論頭像 fanniebaby發(fā)表于 2016年11月09日 22:41[回復(fù)]

這個不錯。

用戶評論頭像 華夏九州套圖發(fā)表于 2016年11月03日 14:51[回復(fù)]

我只是來隨便看看!

    用戶評論頭像 殷勤的鍋餅發(fā)表于 2016年11月12日 11:00[回復(fù)]

    第三方

用戶評論頭像 一生一世套圖發(fā)表于 2016年11月02日 10:31[回復(fù)]

三天不來手癢癢!

用戶評論頭像 增達任務(wù)網(wǎng)發(fā)表于 2016年10月28日 14:03[回復(fù)]

相當(dāng)不錯,自愧不如!

發(fā)表評論

change vcode