如何让疏散时间继续计算,直到所有代理人都在netlogo离开建筑物

时间:2014-09-26 08:42:59

标签: netlogo

实际上我正在尝试做的是如果警报按钮是假的,乌龟只会在环境中徘徊,然后当紧急警报开启时,乌龟将离开建筑物并且撤离时间将开始增加直到最后一次代理人离开。我想我不能在go程序中写下“设定撤离时间+撤离时间+ 1”,因为即使紧急警报关闭,这也会使撤离时间开始计算。谢谢。谁能让我知道如何解决这个问题。

globals
[
time-to-evacuate
flag-active-alarm
]

to go
ask turtles [wander]
if (flag-active-alarm )[active-alarm] 
tick
end

to wander
[....]
 end

to active-alarm
set flag-active-alarm true
set time-to-evacuate 0
set time-to-evacuate time-to-evacuate + 1
ask turtles [move]

if all? turtles [ pcolor = red ]   ;stops simuation
[ stop ]
end

to move
avoid-obstacles1 
end

2 个答案:

答案 0 :(得分:0)

代码中的其他位置,添加:

set time-to-evacuate time-to-evacuate + 1

您希望计时器增加的位置。典型的地方是go程序:

to go
  ...
  set time-to-evacuate time-to-evacuate + 1
  ...
  tick
end

答案 1 :(得分:0)

现在我明白Seth提到的内容,不需要在代码中插入设置时间撤离0,只需这样做就行了。非常感谢。

to active-alarm
 set flag-active-alarm true
 set time-to-evacuate time-to-evacuate + 1
 ask turtles [move]
 if all? turtles [ pcolor = red ]   ;stops simuation
 [ stop ]
 end