如何检查属于补丁的变量的值

How to check the value of a variable that belongs to a patch

我正在创建一个 netlogo 程序,其中补丁拥有两个变量,一个是“cheiro”,另一个是“tempo”。

海龟在补丁周围走来走去,在移动之前,如果补丁有 cheiro = 1,它们会手动检查周围的每个补丁。这是我的代码,它给了我一个错误。

    ask patch-ahead 1[
        if cheiro = 0 [set m1 patch-ahead 1]
        ]
]

给出的错误是“您不能在补丁上下文中使用 PATCH-AHEAD,因为 PATCH-AHEAD 仅适用于 turtle。

我也试过了

if patch-ahead 1 with [cheiro = 0][set m1 patch-ahead 1]

但收到错误提示“WITH 期望此输入是一个代理集,但得到的却是一个数字。”

当你说 ask patch-ahead... 时,你是在要求补丁而不是乌龟做某事。显然,询问补丁前面的补丁是否具有某种价值是没有意义的,因为补丁不会移动,因此没有参考方向。你可能想要这样的东西:

if ([cheiro] of patch-ahead 1) = 0 [...]

我已经包含了方括号,这样您就可以看到代码在做什么,但是对于 运行 来说它们不是必需的。这会查看下一个补丁(从任何一只乌龟的角度来看)并检查变量 'cheiro' 的值。如果该值为 0,则 [ ] 中的代码为 运行.