Netlogo WITH 期望一个 true/false 值,但得到的是 0

Netlogo WITH expected a true/false value but got 0 instead

我对 Netlogo 还很陌生。我试图让我的海龟根据它们的变量采取不同的行为,但是我收到运行时错误 WITH expected a true/false value but got 0 instead.

我已经在不同的过程中初始化了几个海龟,所以不应该有任何带有请求变量的空海龟代理集。

  to setup-figures

    ask n-of 2 citizens
         [ get-panicked ]

    ask n-of 2 citizens
          [ get-alerted ]

    ask n-of 2 citizens
          [ calm-down ] 

  end

    to flee

    ask citizens with [ panicked? ] [

        fd 1.1
      ]

    ask citizens with [ alerted? ] [
        fd 0.6
       ]
    ask citizens with [ calm? ] [

         fd 0.5
       ]

    if [pcolor] of patch-ahead 1 = grey

      [collision-check]

end

to get-panicked

   set panicked? true
   set color red
   set mood 19

end

to get-alerted

   set alerted? true
   set color yellow
   set mood 35

end

to calm-down

   set calm? true
   set color green
   set mood 66

end

ask 原始人会查看 所有 公民,以找到那些(比如说)受到警报的人?等于真。但是如果只初始化一些citizens,那些没初始化的会报警吗?设置为默认值零。零和假在 NetLogo 中是不一样的,所以 ask 窒息那些值被警告的公民?为零,即那些尚未初始化的。在设置的开始,您可以输入

ask citizens [
set panicked? false
set alerted? false
set calm? false
]

然后你可以像你在代码中做的那样让你的 n- 公民变得恐慌等等。