WEBVTT

1
00:00:00.000 --> 00:00:12.095
同一个完成条件如果分别藏在登记台文字、出口颜色和动画次数里，很容易出现这里说完成、那里还说缺项。

2
00:00:12.095 --> 00:00:20.246
值守区练习只需要先区分两项事实：有没有获得编号，是否已经核验。

3
00:00:20.246 --> 00:00:28.163
登记台和出口都根据它们显示反馈，而不是各自保存一份相互无关的答案。

4
00:00:28.163 --> 00:00:34.740
图中最初两项都为否，玩家仍能探索，不能确认完成。

5
00:00:34.740 --> 00:00:41.776
暂时不增加任务编辑器，先用纸面事实卡把这套关系讲清楚。

6
00:00:41.776 --> 00:00:46.414
现在编号已经获得，核验还没完成。

7
00:00:46.414 --> 00:00:53.596
登记台因此允许执行动作，出口仍说明缺项，这并不矛盾。

8
00:00:53.596 --> 00:01:01.668
即使玩家没先看出口清单，这个状态也应有效，因为编号本来就在那里。

9
00:01:01.668 --> 00:01:08.964
若程序要求先读清单再调查编号，相当于凭空增加了隐藏依赖。

10
00:01:08.964 --> 00:01:16.306
玩家提前发现线索后可能以为已经调查过，永远不会再点第二遍。

11
00:01:16.306 --> 00:01:25.672
把真正必要的条件写出来，就能分清哪些先后关系属于理解引导，哪些才属于规则。

12
00:01:25.672 --> 00:01:32.664
核验完成后，有人会再按一次调查键，确认刚才发生了什么。

13
00:01:32.664 --> 00:01:35.597
这不是需要惩罚的操作。

14
00:01:35.597 --> 00:01:47.038
登记台可以回复已经登记，出口继续显示完成，但不应把核验值反转回未完成，也不应重复扣除物品。

15
00:01:47.038 --> 00:01:52.385
本练习没有消耗品，因此更容易看清原则。

16
00:01:52.385 --> 00:01:59.952
即使成功动画只播一次，离场回来后也要能从文字读出当前结果。

17
00:01:59.952 --> 00:02:08.913
检验重复行为，就是检查系统是否真的记住事实，而不是碰巧播放过一段演出。

18
00:02:08.913 --> 00:02:12.636
图里上游操作改变了下游结果。

19
00:02:12.636 --> 00:02:18.154
实现时，下游房间可能直到玩家进入才创建；

20
00:02:18.154 --> 00:02:25.736
它不能只等一条早已错过的动画通知，而应在出现时读取当前事实。

21
00:02:25.736 --> 00:02:34.257
Godot 可以用已有的共享运行时数据承载这些信息，具体结构沿用项目约定即可。

22
00:02:34.257 --> 00:02:42.478
还要区分两个范围：普通换房间保留进度，不代表关闭程序后也会保留。

23
00:02:42.478 --> 00:02:51.339
后者需要明确的保存恢复设计，不能因为使用了自动加载节点就宣布已经有存档。

24
00:02:51.339 --> 00:03:01.864
看图中的问号：玩家从支路取得新线索，原目标仍未核验，所以未解记号不该自动变成完成。

25
00:03:01.864 --> 00:03:07.057
若允许玩家自己做记号，那更只是他的判断；

26
00:03:07.057 --> 00:03:12.075
即使误标完成，也不能让程序直接开门。

27
00:03:12.075 --> 00:03:17.977
对自动生成的任务记录，则应从真实事实推导结果。

28
00:03:17.977 --> 00:03:23.024
这两种记事方式用途不同，不必强行统一。

29
00:03:23.024 --> 00:03:33.995
值守区中，获得编号之后仍要回登记台行动，最后去出口确认，认知变化不能偷偷替代实际动作。

30
00:03:33.995 --> 00:03:42.251
这页用一个独立推箱子模型说明恢复范围，并不要求给交接练习增加箱子。

31
00:03:42.251 --> 00:03:52.222
箱子堵住唯一通道时，局部重置应把它恢复到可解位置，同时确保角色没有留在碰撞里面。

32
00:03:52.222 --> 00:03:59.013
已经取得、与这道箱子题无关的证据，不该顺手全部清空。

33
00:03:59.013 --> 00:04:09.119
另一种重开整个练习则可以明确清空本轮事实，两者都能成立，关键是名字和结果一致。

34
00:04:09.119 --> 00:04:14.126
现在选择局部重置最符合玩家预期的行为。

35
00:04:14.126 --> 00:04:19.079
把测试拆成五类，目的不是凑检查数量。

36
00:04:19.079 --> 00:04:22.258
常规路线检查基本闭环，

37
00:04:22.258 --> 00:04:25.481
逆序检查隐藏前置条件，

38
00:04:25.481 --> 00:04:29.539
离场检查事实是否被房间删除，

39
00:04:29.539 --> 00:04:32.737
重复检查是否意外回退，

40
00:04:32.737 --> 00:04:36.600
重试检查恢复边界和角色控制。

41
00:04:36.600 --> 00:04:45.672
值守区可以规定普通返回保留两项事实，重开练习清空它们，并回到安全起点。

42
00:04:45.672 --> 00:04:53.398
分别在登记前后重开，看看出口、登记台和可操作状态是否一致。

43
00:04:53.398 --> 00:04:59.271
这些只是本轮范围，不是所有未来状态的穷尽证明。

44
00:04:59.271 --> 00:05:05.513
写一张表，每行包含给定事实、操作和预期结果。

45
00:05:05.513 --> 00:05:13.095
例如编号已取得但尚未核验，离场再回来后，登记仍应可执行；

46
00:05:13.095 --> 00:05:19.208
核验已完成，重复调查后，出口仍应显示完成。

47
00:05:19.208 --> 00:05:24.131
再补上重开前后的安全落点和控制恢复。

48
00:05:24.131 --> 00:05:30.188
逐行实际执行，把结果与截图或日志位置记在旁边。

49
00:05:30.188 --> 00:05:39.074
还没进入引擎时可以做纸面推演，但应明确标记，不把写出预期当作运行通过。

50
00:05:39.074 --> 00:05:44.156
最后保留一个失败案例和修订后的复测结果。

