Timer 不同操作的NetLogo调度

Timer 不同操作的NetLogo调度,timer,netlogo,scheduling,Timer,Netlogo,Scheduling,我对NetLogo非常陌生,现在我试图理解NetLogo背后的逻辑。我正在构建我的第一个模型,但我不知道如何命令这些程序来执行我希望它们执行的操作。 我的模型应该做什么: 在“早上”(模拟开始)随机展开我的代理 然后让他们随意地“上坡”,去周围日照最高的地方 在那里停留一段时间(25到34之间) 在我的计时器过期后,它们应该开始觅食——到目前为止只是随机移动——计时器不应该再次启动,“上坡”行为也不应该再次执行 模型的功能: 特工们散播开来 他们移动到周围日照最高的地方(上坡) 计时器启动

我对NetLogo非常陌生,现在我试图理解NetLogo背后的逻辑。我正在构建我的第一个模型,但我不知道如何命令这些程序来执行我希望它们执行的操作。 我的模型应该做什么:

  • 在“早上”(模拟开始)随机展开我的代理
  • 然后让他们随意地“上坡”,去周围日照最高的地方
  • 在那里停留一段时间(25到34之间)
  • 在我的计时器过期后,它们应该开始觅食——到目前为止只是随机移动——计时器不应该再次启动,“上坡”行为也不应该再次执行
模型的功能:

  • 特工们散播开来
  • 他们移动到周围日照最高的地方(上坡)
  • 计时器启动并倒计时
  • 特工们又开始行动了——但我被困在了上坡路——呆在原地,直到计时器再次“循环”结束
我想这是一个真正的初学者错误…你能给我解释一下如何做对吗

to go
  move-turtles
  tick
end

to move-turtles
  ask turtles
  [ifelse insolation <= max [insolation] of neighbors
  [continue]
  [bask]
  pen-down
  ]
end

to continue   ;; a turtle procedure
  ifelse random-float 1.0 < 0.7
  [uphill insolation]
  [move-to one-of neighbors]
end

to bask  ;; a turtle procedure
  set count-down count-down - 1
  set label count-down
  if count-down = 0
  [
   forage
   set label ""
  ]
end


to forage  ;; turtle procedure 
  set heading (random-normal 180 30)
  fd random-normal 3 2
end
要走了
搬海龟
打上钩
结束
搬海龟
问海龟

[ifelse日晒如果我正确理解你的问题,你只希望他们每天上坡/晒一次太阳,但他们会重复。想象一只乌龟晒完太阳后,饲草程序会随机发送给他们一次。现在,下一次,他们面临:

ifelse insolation <= max [insolation] of neighbors
[ continue ]
[ bask ]
然后将该变量带入测试,以确定是继续还是继续:

to move-turtles
  ask turtles
  [ ifelse bask-over? or insolation <= max [insolation] of neighbors
    [ continue ]
    [ bask ]
    pen-down
  ]
end
移动海龟
问海龟

[如果是沐浴?或者是日晒,你能告诉我们你最初设置倒计时值的代码吗?嗨,JenB,这是我设置倒计时的部分(在设置海龟程序中):设置海龟创建蜥蜴25[设置大小7设置颜色绿色设置形状“蜥蜴”设置XY random xcor random ycor]询问海龟[设置倒计时随机10+25]非常感谢您的帮助。问题变得稍微小了一点,但到目前为止还没有解决。我试图修改您的代码,以便在“晒太阳”和“继续”都结束时,只执行“觅食”操作。我无法做到这一点……当运行您的代码时,海龟在晒太阳后再次移动,晒太阳不再发生,但是继续。所以海龟们停止晒太阳,寻找一只虱子,然后再继续。我想让他们继续晒一次太阳,然后再做一次饲料……看起来很棘手:)好吧,现在我想我明白了:移动海龟问海龟[(如果不是这样的话
to move-turtles
  ask turtles
  [ ifelse bask-over? or insolation <= max [insolation] of neighbors
    [ continue ]
    [ bask ]
    pen-down
  ]
end