打开网页就能玩的吃豆人小游戏:在 19 列 × 21 行的迷宫里吃光所有豆子过关,同时躲开四只脾气各不相同的追逐者——追风直奔你、拦路抄你前方四格、包抄和追风一起夹你、怯生靠太近反而掉头跑。吃下四角的大力丸,它们会变蓝几秒,这时候反过来能吃,连吃四只是 200、400、800、1600 分。三张自拟迷宫轮换,每张都带一条左右贯通的隧道,每关追逐者再快一点。三条命,满一万分白送一条。前 5 关免费玩,第 6 关起免费登录后接着打。方向键可以提前按,到路口自动拐;手机在画面上滑一下就转向。
规则
这是一款迷宫吃豆游戏:你操纵一团圆滚滚的橙色小毛球在迷宫里跑,把地上的豆子全部吃光就过关,同时要躲开四只在迷宫里巡逻的追逐者。
迷宫一共三张,都是 19 列 × 21 行、左右严格对称,每张都在中间那一行带一条左右贯通的隧道:从最左边再往左走一格,就会从最右边冒出来。三张分别叫回字巷(可吃的豆子 182 颗,吃光 1980 分)、双梳巷和开阔场(各 207 颗,吃光 2230 分),过一关换一张、三张轮着用,顶栏那一格随时显示当前是第几关、走的是哪张图。
计分:普通豆子 10 分;四个角上各有一颗会一鼓一鼓跳动的大力丸,50 分;每一关还会出现两次水果——吃掉全关三成豆子时出第一次、吃到六成二时出第二次,停留 9 秒不吃就撤走,分值是 100 × 关数、1000 封顶(第一关橘子 100 分,第七关葡萄 700 分),水果的种类每 8 关轮一圈。
大力丸是唯一的反击手段。吃下去的一瞬间,盘上的追逐者会原地掉头并变成蓝色,这段时间里撞上去就是你吃它们:一次变蓝里连吃的四只依次是 200、400、800、1600 分,被吃掉的只剩一双眼睛,会用 12 格每秒的速度飞回中间的巢重生,眼睛碰到你不算撞。可吃时间第一关是 6 秒,每过一关少 1 秒,第五关起固定 2 秒;最后 1.6 秒它们会闪白提醒你收手。
四只追逐者的目标各不相同:追风直奔你所在的格子;拦路盯的是你前方四格,专门在拐角堵人;包抄以你前方两格为支点,取追风的对称点当目标,和追风一前一后夹你;怯生远时跟着追,进到八格以内反而掉头缩回自己的角落。它们还会在散开与追击之间定时轮换:第一关是散开 7 秒、追击 20 秒、散开 7 秒、追击 20 秒、散开 5 秒、追击 20 秒、散开 5 秒,之后就一直追击不再散开;关数越高散开段越短,最少缩到 3 秒。换段的那一下它们会集体掉头。
速度:主角从 6.6 格每秒起步,每关加 0.25,上限 9.6;追逐者从 5.8 格每秒起步,每关加 0.36,上限 9.8——也就是说前八关你比它们快,到第九关它们就反超了。另外它们在隧道里和变蓝时都只剩 55% 的速度,这两处是你能拉开距离的地方。
命:一共 3 条,被没变蓝的追逐者碰到就丢一条,画面定格 1.4 秒后大家各回出生点,再给 1.8 秒的起步缓冲才重新开跑。分数满 10000 白送一条命,整局只送这一次。三条全丢光这一局结束。
前 5 关免费,第 6 关起登录。 第 1 到第 5 关游客直接玩;吃光第 5 关会弹出登录框,免费登录之后这一局原样接着打第 6 关(分数、命数都不动),纪录记在账号上、换设备接得上。不登录就回第 1 关重玩,刚才那一局的成绩照常记进纪录。
转向是「预输入」的:你按下的方向如果当下拐不过去,主角会一直记着,走到第一个能拐的路口自动拐;按当前方向的反方向则是立刻原地掉头。这一条是整个游戏手感的关键,提前半个身位按下去就够了,不必卡在路口正中。
加一条命:三条命用完那一刻,结束层上会多出一个「加一条命 · 10 积分」的按钮。点它就命数回到 1,主角与四只回到出生点,当前这一关已经吃掉的豆子、分数与关数全部保留,并且照常给起步缓冲。每局只给一次;用过加命的这一局不计入最高分与最远关卡的纪录,局数与时长照常统计。积分规则见页脚的积分与付费说明。
技巧
先把四颗大力丸当成四张保命符,而不是四份分数。 新手最常见的失误是开局顺手把角上的大力丸全吃了,结果后半关手里一张牌都没有,被围死在长廊里。正确的顺序是先清中间和远处那些没有退路的区域,把大力丸留到最后:它们在四个角上,角落本来就是最容易脱身的地方,晚点吃不亏。
要吃就一次吃四只,别急着咬第一只。 连吃的分值是 200、400、800、1600,四只吃全是 3000 分,等于一关豆子的一大半。吃大力丸之前先看它们聚没聚拢——追逐者被大力丸逼得集体掉头,所以你该在它们扎堆追你的时候再吃,而不是在它们散得满图都是的时候。
隧道是你的主场。 追逐者在隧道里只有 55% 的速度,你却是满速。被贴身追的时候往隧道跑,穿过去再绕回来,一来一回就能甩开一大截。三张图的隧道都在中间那一行,位置好记。
用「散开段」清远处的豆子。 每一关开头它们会先散开 7 秒各回一角,中间还有两段散开时间。这几秒是去角落和死角清豆子的窗口;轮到追击段就回到中间的开阔区,那里路口多、跑得开。
甩拦路靠假动作。 拦路盯的是你前方四格,所以你只要在它扑过来之前突然掉头,它的目标格就一下子跑到你身后去了,会白跑一段。反过来,顺着一条直路一直走是最危险的,等于把自己前方四格明明白白交出去。
怯生不用管,包抄要盯着追风看。 怯生进到八格以内自己就跑了,基本不构成威胁。真正会要命的是追风和包抄的配合:想知道包抄要去哪,看追风在哪就行——追风离你越远,包抄的目标格就甩得越远、绕得越大;当追风正好从你正面压过来时,包抄多半已经绕到你背后了,这时候别往前顶。
提前按方向,别在路口手忙脚乱。 因为转向是预输入的,你可以在还没到路口的时候就把下一个方向按下去,主角到了就自己拐。把注意力放在提前一两个路口的规划上,手上只做一件事:想好了就按。
第九关是一道坎。 追逐者的速度在第九关反超你,从那之后正面拉开距离已经不可能了,只能靠隧道、靠掉头、靠大力丸。到这个阶段建议改变吃豆顺序:先把长廊和死胡同全部清空,把最后的豆子留在路口最多的那片区域。
常见问题
这个吃豆人和街机上的吃豆人(Pac-Man)是同一个吗?
不是同一个。 Pac-Man 是 1980 年南梦宫(Namco)的街机作品,中文通称吃豆人。玩法上确实参考了街机经典的吃豆人,但迷宫、角色造型、名字和全部数值都是本站自拟的:我们画的是三张 19 列 × 21 行的迷宫,不是原版那张 28 列 × 31 行的图;主角是一团长着小脚的品牌橙小毛球,四只追逐者是头顶各有记号(火苗、双角、天线、圆耳朵)的果冻小怪,造型和配色都和原版那一组不一样;四只叫追风、拦路、包抄、怯生;速度曲线、大力丸秒数、水果分值、散开与追击的时间表全是我们自己定的。这里没有原版的移植版,也不是模拟器。
一共有几张迷宫?会不会一直重复?
三张,过一关换一张,三张一轮循环。 回字巷是 182 颗豆子的紧凑图,长廊多、死胡同少;双梳巷和开阔场各 207 颗,路口更密、绕圈的路线更多。虽然图只有三张,但每一关的难度是不同的:追逐者的速度一关比一关快,大力丸的可吃时间一关比一关短,散开的时间也一关比一关少,所以第七关的回字巷和第一关的回字巷完全是两回事。
为什么我按了方向却没有拐?
因为那个路口拐不过去——迷宫里不是每个格子四个方向都通。这时候你按的方向不会白按,它会被一直记着,等主角走到第一个能往那个方向拐的路口就自动拐。如果你想马上改变行进方向,按当前方向的反方向,那一下是立刻生效的原地掉头。另外被抓之后的定格和复位后的起步缓冲这两段时间里谁都不动,那不是卡住了。
纪录是怎么存的?
存两项:最高分和打到过的最远关卡,都取历史最好值,存在你自己的浏览器里;顶栏登录之后会跟着账号跨设备同步。用过「加一条命」的那一局不写进纪录,所以榜上的成绩一定是你靠三条命自己打出来的。本页不设排行榜。
它和站内别的游戏有什么不一样?
迷宫 是安静的找路题,没有人追你;贪吃蛇 同样是在格子里跑,但威胁来自你自己越来越长的身子;坦克大战 的敌人会开火,靠的是射击和掩体。这一个的核心是路线规划加时机:四只的追法是写死的规则,不是随机乱走,所以它可以被算计、被预判,玩久了你会开始按它们的目标格来选路线,而不是凭感觉躲。
历史与冷知识
- 迷宫吃豆这个类型能立住,靠的是「敌人有性格」。 如果四只追逐者都用同一套追法,玩家只要学会一种应对就通吃,游戏很快就没意思了;四种目标格规则一叠加,每一个路口的最优解都不一样,可玩性一下就上来了。本页的追风、拦路、包抄、怯生就是照这个思路设计的。
- 「散开」这段时间不是休息,是设计上的呼吸。 如果追逐者从头到尾一路紧逼,人的注意力撑不过两分钟就会垮掉;定时让它们各回一角几秒,玩家得以喘口气、清一清远处的豆子,节奏才有起伏。本页第一关的散开段是 7 秒,越往后越短,紧张感就是这么一点点拧上去的。
- 大力丸是典型的「攻守易位」道具。 整局游戏你都在逃,只有这几秒你在追,这种角色对调带来的爽感远大于单纯加分。它的时长设计得越来越短,正是为了让这几秒始终值钱——第一关 6 秒可以从容吃满四只,第五关以后的 2 秒就必须提前算好站位。
- 贯通隧道是最省的「不对称地形」。 只要让地图的左右两端接起来,追逐者的直线距离判断就会在这里失灵,玩家凭此获得一处天然的避难所;代价只是把列坐标取一次模。本页还额外给隧道加了减速,让它更像一条真正的退路。
- 被吃掉后只剩一双眼睛飞回巢,这个处理解决的是「敌人消失了怎么办」。 直接让它原地不见会让画面突然变空,玩家失去对局势的判断;让眼睛用很快的速度沿着路飞回去,既交代了它去哪了,也给了玩家一个明确的倒计时——眼睛到家了,它就要回来了。
- 为什么迷宫要做成左右对称? 一是好记:人只需要记住半张图;二是公平:无论追逐者从哪一侧包过来,你手里的选择是对等的;三是省事:地图数据实际上只有一半,另一半是镜像出来的。本页三张图都严格左右对称,写代码的时候连这一条也写进了单元测试里。