贪吃蛇游戏

用方向键(或屏幕上的按钮)操控贪吃蛇,吃掉食物,让身体不断变长。

分数: 0长度: 1最高分: 0

这款贪吃蛇的规则与数值

棋盘为20 x 20格(宽300像素,每格15像素),蛇每120毫秒前进一格。吃到食物后速度不会加快,从头到尾保持同一节奏。 每个食物加10分,身体增长一格。开局时一条长度为1的蛇停在棋盘中间附近,按下第一个方向键后才开始移动。 撞墙或撞到自己的身体会立即结束,填满全部400格则以满分通关。下面的数据都是根据这些设定计算出来的。

蛇的长度得分占棋盘比例剩余空格
100.3%399
5401.3%395
10902.5%390
201905.0%380
5049012.5%350
10099025.0%300
200199050.0%200
300299075.0%100
4003990100.0%0

长度等于“得分 ÷ 10 + 1”,所以最高分是3990分(吃399个食物)。得分只统计吃到的食物数量,存活时间不计分。

建立移动时间的感觉

每格120毫秒,相当于每秒约8.33格。不同距离所需时间如下。

移动格数所需时间说明
5格0.60秒
10格1.20秒
20格2.40秒横穿棋盘一条边的时间
40格4.80秒沿一条边往返的时间

如果食物按曼哈顿距离(横向差加纵向差)相距13格,即使走最短路线也要1.56秒。在这段时间里,不让自己的身体挡住去路,就是这个游戏的核心。

操作与输入处理的细则

用算例来验证

例1 距离。头在(10, 10),食物在(3, 16),横向7格加纵向6格共13格,最短需要13 x 0.12秒 = 1.56秒。路线上若有自己的身体就得绕路,距离随之增加。

例2 身体围出的死路。长度为4的蛇蜷成2 x 2的方块,头正对着尾巴所在的格子时,头无法进入尾巴格,本实现会立即结束。蛇再短也可能把自己困住,转弯前最好多看两格。

例3 满分条件。要填满所有格子,必须吃到399个食物,长度达到400,得分为3990。20 x 20的行数和列数都是偶数,因此存在一条恰好经过每格一次并回到起点的闭合路线(哈密顿回路),沿着它一直走,理论上不会碰撞。不过这并不是吃食物最快的办法,耗时会长得多。

实用技巧与常见失误

  1. 少贴着墙走。沿边缘一侧已被堵住,可选方向变少。蛇还短时,多利用中间区域。
  2. 变长后走大圈。在狭窄处频繁转弯,很容易与尾巴交叠。
  3. 角落里的食物别着急。角落只有一两条进入路线,先确保退出的路再进去。
  4. 不要狂按键。每步只读取一个方向,连按没有用,最后一次输入还可能不是你想要的。
  5. 手机上先熟悉按钮位置。找到拇指不遮挡棋盘的握法。

限制与保存的信息

如何利用结果

把得分换算成长度(得分 ÷ 10 + 1),再对照占比表,就能知道目前的水平大约能填满棋盘的几成。如果总是在相近的长度结束,往往是在这个阶段重复同类失误,可以回想最后几格的路线。

贪吃蛇的背景

操控一条会变长的线去吃食物,这种玩法据说可追溯到1970年代后期的街机游戏Blockade,1990年代后期随诺基亚手机内置而传遍世界。各版本在速度变化、是否可穿墙、尾巴所在格是否算碰撞等细节上并不相同,因此不同版本的成绩无法直接比较。

常见问题

手机上能玩吗?

可以,点击棋盘下方的四个方向按钮即可操控。方向键和空格键的快捷操作适用于电脑键盘。

最高分会保存吗?

不会。只在当前打开的页面中保留,刷新后就没有了。

为什么按相反方向键没反应?

蛇长度不小于2时,直接掉头会让头立刻撞上身体,所以这样的输入被忽略。先向上或向下转弯,再转一次就能完成掉头。

能穿墙到另一侧吗?

不能,碰到墙游戏就结束。

最高能得多少分?

填满400格时为3990分,需要吃到399个食物,达成后游戏会显示通关信息并结束。

其他小游戏

也可以试试考验记忆的颜色顺序记忆游戏、打砖块和寻路的迷宫逃脱游戏。