我是通知 7 的新手,我想撤消一个我只想早先应用的命令。我该怎么做?(我希望这发生在事件之后,使用 after 语句。)
问问题
53 次
1 回答
2
假设我们有一个带有相反规则的小故事。
林恩的“激光” 实验室是一个房间。“东边是金库。如果没有的话 致命的激光将你与它分开。” 避难所在实验室的东边。“你做到了!”
而不是从实验室向东走: 说“一排炽热的激光束挡住了你的去路。”
一旦发生特定操作,我们希望“禁用”此规则。正如您所建议的,这可以在after规则内部发生,也可以在任何其他类型的规则中发生。
我们可以添加如下内容:
激光安全是一种不同的真实状态。 表盘是实验室中的设备。它固定在适当的位置并打开。 执行关闭表盘:现在激光安全是真的。 关闭表盘后:说“激光冷却并变得无害”。
现在,我们不是在运行时实际撤消我们的相反规则定义,而是缩小其定义的条件,使其“解散”,不再应用,一旦lasers safe
变为真。
因此,我们将替代规则重新编程为:
当激光安全是错误的时,不要从实验室向东走: 说“一排炽热的激光束挡住了你的去路。”
这种方法的好处是我们现在甚至可以“重做”我们的“撤消”:一个简单now lasers safe is false
的返回相反规则的旧行为。
这个解决方案是通用的:你总是可以定义一个全局真值来禁用这样的规则。
当然,简单地写一些类似的东西更容易:
Instead of [action] when the [noun] is (not) [adjective]:
Instead of [action] when we have (not) [verb]ed the [noun]:
在我们的例子中,我们可以自由地写:
当拨盘打开时,不要从实验室向东走: 说“一排炽热的激光束挡住了你的去路。”
或类似的东西:
当我们没有按下红色按钮时,不要从实验室向东走: 说“……”
于 2019-11-14T03:56:14.700 回答