背包满了,怎样保住送货责任,又让玩家有得选?
把物件的占用空间、保管位置和交付责任分开记录,再用明确的寄存、换装与交接规则,让背包限制产生取舍,而不是误删主线。

先保护交付责任,再计算背包空间
送货故事的背包满了,先判断一件东西能否自由处置,再判断它放在哪里。关键包裹可以占空间,也可以暂时离身;只要交付责任尚未解除,就不能通过普通“丢弃”操作消失。玩家应当在寄存、调整装备、放弃普通物件或改变路线之间选择。
分类依据是当前承诺,不是外观或稀有度。一块漂亮石头可以随手放下,一封普通信件却可能承载已经接下的委托。作者需要分别回答:东西归谁、现在由谁保管、下一步必须拿它做什么、怎样才算完成责任。
以下“雾港送件”是虚构教学案例,不是真实用户案例、经过测试的结果,也不代表任何产品功能。所有容量和条件均为本例的设计约定。
送货员阿禾要把密封戏服箱交给剧场管理员。背包容量六格,戏服箱占三格,雨披、工具包、纪念罐各占一格,已经装满。进入湿滑栈桥前,她还要取得一双占两格的防滑靴。这里的设计问题是:怎样腾出两格,同时保留可以兑现的送货承诺?
用一张责任表替代“重要物品”标签
把下面的表当作可复用底稿。每件物品另设唯一编号,地点变化沿用原编号,避免寄存和取回时变成两件东西。
| 物件与占用 | 当前责任 | 允许处置 | 责任解除条件 |
|---|---|---|---|
| 戏服箱,三格 | 阿禾负责交付 | 携带、登记寄存、指定交接 | 管理员接收并确认 |
| 雨披,一格 | 自有物件 | 穿戴、收纳、丢弃 | 无交付责任 |
| 工具包,一格 | 自有物件 | 携带、寄存、丢弃 | 无交付责任 |
| 纪念罐,一格 | 自有物件 | 携带、寄存、丢弃 | 无交付责任 |
| 防滑靴,两格 | 自有物件 | 穿戴、收纳、丢弃 | 无交付责任 |
“当前责任”还要配一条位置记录,例如“戏服箱:码头寄存柜;交付责任:阿禾;状态:待取回”。寄存改变保管位置,不把委托写成已完成。只有收件人确认的交接才解除责任,不能仅凭物品不在背包里就判定送达。
表中的“允许处置”也不是永久属性。假如后续有人委托阿禾转交纪念罐,就应先展示接取承诺的选择,再更新处置规则,不能等玩家丢弃时才宣布它突然成了关键物件。
普通物件的丢弃也需要说清去向。本例约定丢弃后不可取回;若作者希望允许回捡,就必须记录落点和返回条件。两种规则都可成立,但不能在需要救场时临时切换。
寄存必须写出取回路径和截止点
本例在栈桥前设置有人值守的寄存处,仅营业到渡船离港前。阿禾可以登记寄存戏服箱,背包从六格降到三格;拿入防滑靴后变为五格。登记信息写入可查看的任务记录,不另生成一张可能被丢掉的唯一取件凭条。
寄存提示可以直接采用这段样例:“戏服箱将留在码头寄存处,仍由你负责送达。渡船离港后无法返回。你可以在离港前取回。”它同时说明位置、责任和期限,玩家不必从“已保存”三个字推测后果。
如果戏服箱还在柜中,选择登船时应显示待办,并允许返回寄存处。本例不允许带着未取件状态离港,因为作者尚未编写委托失败后的故事。拦截应发生在不可逆的离港之前,不能到剧场门口才发现主线已经断掉。
寄存点关闭、柜子被搬走或凭证遗失,都能成为剧情事件,但必须另写可达的处理分支。暂存规则本身不应暗中制造这些风险。若作品确实要让寄存有代价,应在寄存前呈现条件,并给出拒绝寄存的路线。
换装先预演最终容量,再整组执行
寄存只能缓解当下的空间问题,取回戏服箱时仍要重新计算。为此,本例设一个衣物位和一个鞋位,穿戴物不占背包格;开始时两处为空。防滑靴只有穿上才满足栈桥通行条件,放在包里不算。
完整演算如下:初始六格;寄存戏服箱后剩三格;领取防滑靴后五格;穿上雨披和靴子后剩两格;取回戏服箱后五格。此时背包是戏服箱、工具包、纪念罐,阿禾穿着雨披与靴子,可以带货登船。
这一解法成立,是因为两个穿戴位置都空着。如果鞋位已有旧靴,换装就要把旧靴的收纳占用一起算进去。规则样例可以写成:“先列出换装后所有位置与背包总格数;容量合格才同时完成脱下、收纳和穿上;不合格则保持原状,并列出可腾挪物件。”
不能先把新靴穿上,再发现旧靴放不进去,随后随便删除一件物品。玩家取消换装时,也应回到操作前的位置记录,不能留下半套装备或重复物件。
玩家还有其他选择:先穿雨披,只腾出一格,仍不足以把两格的新靴放进背包;再丢弃纪念罐便可领取。若提供“领取并立即穿戴”,则可直接使用空鞋位,但这个入口必须明确展示,不能只藏在作者的解法里。
用失败情形检查规则是否闭合
验收时不只走一次正确路线,而要检查动作结束后是否仍然符合三条约定:每个物件只有一个位置;背包没有超过容量;未解除的交付责任仍有后续处理路径。
| 操作情形 | 本例应有的结果 |
|---|---|
| 对戏服箱选择全部丢弃 | 保留戏服箱,说明仍需交付 |
| 寄存后再次点击寄存 | 不重复腾出空间,不生成副本 |
| 满包时尝试取回 | 保持寄存,列出腾位办法 |
| 换装到一半取消 | 恢复原位置与容量 |
| 未取箱就选择离港 | 留在码头,提供返回入口 |
| 管理员确认收货 | 移出箱子,解除交付责任 |
这些是待执行的检查项,不是测试通过报告。若某项只能靠旁白声称“包裹其实还在”,就要补齐对应的位置与动作规则。
也有更简单的替代方案:把全部委托物放入不计容量的任务栏。它适合让携带管理退居次要的位置,但会削弱本题中送货占用空间的取舍。另一种方案允许主动毁约,此时应使用独立选项,预告委托失败,并接上已经写好的分支;不能让普通清包操作承担这个决定。
可直接复用的最小记录是:物件编号、容量、位置、责任承担者、允许动作、取回期限、交接对象、解除条件。填完后,从最拥挤的节点演算到收货节点。保护应当防止无意中删掉责任,同时让玩家看清:自己正在保管什么,又为哪一种选择付出了空间与行程的代价。


