一个文件搞定,不依赖任何库,下载后双击用浏览器打开就能玩。
玩法
- 方向键 / WASD 控制方向,空格暂停
- 吃到金色食物 +10 分,撞墙或撞到自己就结束
- 会记录本局最高分
实现要点
snake.unshift(head); // 新蛇头插到最前
if (吃到食物) { /* 不 pop,蛇变长 */ }
else { snake.pop(); } // 没吃到就去掉尾巴,长度不变
两个容易踩的坑:
- 禁止 180° 掉头:向右走时按左键会立刻撞到自己,所以要判断
!(d.x === -dir.x && d.y === -dir.y) - 撞自己只判到倒数第二节:尾巴那一格马上会移走,算进去会误判
想改点什么
- 改
CELL调格子大小,改COLS/ROWS调棋盘 - 改
setInterval(step, 120)里的 120 调速度(越小越快)
授权:本站原创,按 MIT 风格授权——可以随便下载、修改、商用、二次分发,
不用署名,也不担保任何风险。源码里有完整中文注释,改起来不费劲。
楼主 · 2026-09-28 15:34 · 浏览 7

