Netlogo WITH预期为true / false值,但改为0

时间:2019-02-04 15:02:50

标签: netlogo

我对Netlogo还是陌生的。我试图让海龟根据变量的不同而采取不同的行动,但是我得到了运行时错误原本希望是true / false的值,但是却得到了0。

我已经在不同的过程中初始化了两只乌龟,因此不应有带有所需变量的乌龟空代理集。

  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

1 个答案:

答案 0 :(得分:1)

ask原语将查看所有公民以查找那些(例如)被警告的人?等于真实。但是,如果您仅初始化一些公民,那些未初始化的公民会发出警报吗?设置为默认值零。零和假在NetLogo中并不相同,因此ask会使那些具有警觉价值的公民感到窒息。为零,即在尚未初始化的代码上为零。在设置开始时,您可以放

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

然后,您可以像在代码中一样,要求n个公民感到恐慌等。