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