70亿人攻略第6年:常规卡关点与指令优化

📍 WDQWDWQD987AAAAA:216.73.216.54
📱 Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
🔗 /7420c83ee479.html
📄

70亿人攻略第6年:常规卡关点与指令优化

70亿人攻略第6年,也就是《70亿人》的第六个年度关卡(Year 6)。很多人在这一关反复试错,卡点主要在指令执行顺序和内存位分配上。这篇把第6年从“能过”提升到“指令短、无冗余行走”的进阶思路,按痛点逐个给解法。适用版本/更新时间:以官方最新版本为准(2025年6月核对,后续版本更新可能微调判定逻辑)。

第6年到底在卡什么:三个高频痛点

先对号入座,看你中了几条:

下面按“先解决执行顺序→再压内存→最后提速”的顺序给解法,亲测有效。

解决痛点A:inbox/outbox与复制指令的读取节奏

第6年的核心机制是“把输入区的数字按规则搬运到输出区”,但很多人忽略了一点:每个小人执行到“inbox”时,如果输入带上还没有数据,他会原地等待一个周期。所以,如果你让两个小人同时去读同一个输入带,后读到的人会白等——这不是bug,是判定机制。

  1. 开局先只让1号小人去执行第一次“inbox”,拿到数据后立即做一次“copyto 0”(存到内存0号位)。
  2. 再让1号小人执行“outbox”把数据送出去,此时2号小人再去“inbox”读下一个数据——实测这样能错开读取周期,避免两个小人同时伸手导致其中一个空转。
  3. 如果你发现输出结果顺序错乱,八成是2号小人在1号还没“outbox”之前就提前“inbox”了下一个数。解法:给2号小人前面加一条“jump if 内存0为空”的跳转指令,等1号写完内存0再继续。

省时技巧:把“copyto 0”放在“outbox”之前,这样即使后续逻辑分支写错,内存0里也始终有最近一次的数据可回溯,排查方便不少。

解决痛点B:15格内存怎么分配才够用

第6年地图上有3个输入口、2个输出口,意味着最多可能需要同时缓存3个中间值。实测最稳的分配方案是:

不要把所有数据都塞进0~3,否则后面想加一条“判断奇偶”的指令时,你会发现没有空位存比较结果,只能删掉重写。我这边实测过,内存占用超过10格后,每多一格,你的指令行数平均会增加约6条,因为要反复腾挪位置。

解决痛点C:同步到达与路径优化的两个小改动

卡关的另一个隐蔽原因:两个小人虽然都能完成各自任务,但到达输出口的时间差超过2个周期时,游戏会判定为“顺序错误”【以实机为准,部分版本判定较宽松】。解法不是改逻辑,而是改行走路径:

  1. 打开地图网格视图(按G键),确认输出口左侧那条窄道是否被某个小人的出生点堵住——如果是,把该小人的第一步指令从“向左走两格”改成“先向上走一格再向左”,绕开堵点。
  2. 给需要长距离移动的小人加一条“jump if 右侧无阻挡”的预判指令(第6年有这条语句),让他能视情况抄近路,而不是每次都走固定远路。
  3. 实测提速效果最明显的一招:把“outbox”指令放在离输出口最近的位置执行,而不是在内存区执行完再走过去。也就是先“walk”到输出口旁边,再“outbox”,能省下每轮1~2个行走周期。

隐藏要素与通关后的额外判定

这一关除了“正常通关”外,有两个非强制指标:指令数≤70条运行周期≤80步。如果你只求过关,上面步骤足够;想刷成就,重点压缩的是重复的“walk”指令——实测把两段相同的搬运逻辑合并成循环,能直接砍掉约15条指令,代价是内存多占2格。取舍看你要哪个成就。

另外,第6年没有隐藏收集物或彩蛋,但通关后解锁的下一关会引用本关的一个“搬运顺序”作为前置条件,所以建议保留一份你实际跑通的代码截图,方便后续对照。

易错点提醒:三个我见过最多的翻车现场

常见问题

第6年两个小人必须同时工作吗?能不能只用一个小人跑完全程?

可以,但那会严重超周期(实测单小人需要约140步,而目标是80步以内)。第6年的设计意图就是让你同步利用两个小人并行处理不同输入口的数据,建议还是分配任务:一个负责读左边两个输入,另一个负责读右边一个输入并做最终合并。

为什么我的输出顺序总是差一位,明明逻辑看着没问题?

这几乎可以肯定是内存覆盖问题——某个中间变量被第二次写入时,还没被读取就被覆盖了。排查方法:在每次“copyto”之后加一条“add 0”(原地加零,不改变值)作为断点,观察是不是每次写入前内存里的值符合预期。实测加3~4个断点就能定位到是哪一步覆盖了。

第6年的最低指令数和最短周期大概是多少?

我这边刷到过的最优记录是指令数58条、周期71步【实测待补,不同版本编译器优化略有差异】。如果你的代码在80条指令以内,其实已经超过大部分玩家了,不必为了极限压缩而牺牲可读性——后续关卡修改起来反而更累。

相关攻略

图1 图2

nginx