开发者实验题
最小体素沙盒、可误用系统、存档迁移、红石语义测试。每题写目标、约束、对应章节、何为通过。不给标准实现。
本章命题:题只给通过条件。做出任何语言、任何仓库都可以;本卷不发答案,也不选语言。通过不发给商标。
1问题
卷四是考试。附录把考试收成四道可动手的题。题不是教程:没有步骤,没有推荐引擎,没有「抄这段伪代码」。目标写清楚,约束写清楚,对应哪一章写清楚,何为通过写清楚。做不出,回去读正编。做出了却靠换皮过关,正编的证伪句仍然咬得动你。
不给标准实现
下列「通过」全部是玩家或作者可观察的行为。内部用八叉树还是数组、用哪一门语言,本表不验收。验收若开始点名 API,题就变成开工令。
2最小体素沙盒
目标
做出一份可挖、可放、可指的一米格世界。「门两格高」能被玩家口述。挖下去的东西能进口袋,口袋里的能放回同一把尺。
约束
- 不得另开「建造模式」才能放置。
- 不得把世界做成只能观赏的网格。
- 创造若存在,必须寄生在同一套格子、流体和身体上。
- 16×16 区块可有可无;一米格不能无。
对应
《方块与可修改世界》 《最小动词集与手感》 《创造模式与创作工具》 《重新发明:下一代沙盒世界》
通过
资深玩家能用「两格留门」说话,而不必打开编辑器。关掉进度或没有主线,仍有人愿意在同一份世界上待过一整晚。若连续黏土或关卡网格也能让他们觉得「还在玩这句话」,正编的证伪句成立,本题判你换了对象。
3可误用系统
目标
在建造用的度量上,嵌进一份稳定、可观察、官方不必教完的因果。玩家能用它做出说明书没写的装置,并且能把装置教给别人。
约束
- 不得只提供脚本机关包,而把物理收成装饰。
- 不得按「正确电路」每年把稳定怪癖擦干净,还宣称系统更诚实所以更像。
- 允许没有准连接;不允许没有「能长出词」的空档。
- 修一处因果时,必须能指出哪些已有装置会停。
对应
《红石、机器与自动化》 《红石的实现》 《重新发明:下一代沙盒世界》
通过
存在至少一类玩法:你若按文档里的正确行为把它修掉,测试者会说语言被删,而不是 bug 没了。Wiki 或等价的社区文档能复述因果,不必对着你的源码。若只有关卡设计师能做门,居住者做不出钟,本题失败。
4存档迁移
目标
改一次「一格是什么」或「一件物品是什么」的 schema,旧世界仍能打开。指不着的对象变成显式未知,而不是空气假装没发生。
约束
- 每棵落盘的树必须带版本字段。
- 梯子一级级走,禁止跳级把十年箱子收成空气。
- 对局实例可以声明不进梯子;默认实例必须可读昨天。
- 封面若写兼容,转换器不是导入向导里的可选项。
通过
准备一份含墙、箱子、至少一种「下一版不再认识的 ID」的旧档。迁完:墙仍能被指为门或墙;未知物占着格子或槽位,活塞或玩家会撞到它;日志或检查器能说出从哪个版本走到哪个版本。若必须「开始新游戏」才能进世界,本题失败。若未知被写成空气,本题失败。
5红石语义测试
目标
把「仿真层」和「新语义」分成两条可开关的路径,并写清封面承诺哪一条。旧装置在仿真路径上可复述;新内核仍允许误用。
约束
- 不得宣称无代价全兼容:内核既干净,旧飞行器还飞,封面还写更诚实。
- 仿真必须可复述、可可选、允许更慢;必须标明仿真的是哪一端、哪一版的行为。
- 新语义可以没有准连接,但不能没有建造度量上的离散因果。
- 兴趣或 LOD 不得偷偷改农场产量或拆掉机器相位;机器若要跨兴趣,必须是第一等链接或租约。
通过
准备两份测试:一份是某一版 Java(或你声明的那一端)教科书上的稳定装置;一份是只使用新语义的新装置。仿真开:旧装置的行为可被指着复述(允许慢)。仿真关:旧装置允许停,检查器或日志能指出停在哪一条立法;新装置仍能被误用成说明书没有的东西。若两边路径跑出同一份「正确电路」且旧程序悄悄坏了,本题失败。若 LOD 让没人看的农场产量变化,本题失败。
若把四题合成一个超级客户端
主菜单里同时放沙盒、脚本、转换器、红石实验室。安装说明会变短。通过条件仍是四套。一套绿、三套靠开关假装绿,不算交卷。
6这一章留下什么
- 爱好者:有人说重写了、优化了、开源了,你可以把这四题当口试。口令还在、粉还能误用、旧家还能开、封面没说谎——比「更像」有用。
- 开发者:能抄走的是四张验收纸。抄不走的是二十年墙上的测试集,以及那个商标。你不得从本章带走标准实现或指定语言。通过了,请改名或去问律师——那是另一栏承诺。《重新发明:下一代沙盒世界》