用最少的JS代码写出贪吃蛇游戏---迷你版

Posted on 2019-09-04 15:58  柒月柳无絮  阅读(252)  评论(0编辑  收藏  举报

游戏进行页面展示

 

GAME  OVER 页面展示

 

 

 代码如下:

 

<!doctype html>
<html>
 
<body>
 
<canvas id="can" width="400" height="400" style="background: Black"></canvas>
 
<script>
 
var sn = [42, 41],
dz = 43,
fx = 1,
n, ctx = document.getElementById("can").getContext("2d");

function draw(t, c) {
ctx.fillStyle = c;
ctx.fillRect(t % 20 * 20 + 1, ~~(t / 20) * 20 + 1, 18, 18);
}
document.onkeydown = function(e) {
fx = sn[1] - sn[0] == (n = [-1, -20, 1, 20][(e || event).keyCode - 37] || fx) ? fx : n
};
! function() {
sn.unshift(n = sn[0] + fx);
if (sn.indexOf(n, 1) > 0 || n < 0 || n > 399 || fx == 1 && n % 20 == 0 || fx == -1 && n % 20 == 19)
return alert("GAME OVER");
draw(n, "Lime");
if (n == dz) {
while (sn.indexOf(dz = ~~(Math.random() * 400)) >= 0);
draw(dz, "Yellow");
} else
draw(sn.pop(), "Black");
setTimeout(arguments.callee, 130);
}();
 
</script>
 
</body>

</html>