如何使疏散时间持续计算,直到所有特工在netlogo中离开大楼

如何使疏散时间持续计算,直到所有特工在netlogo中离开大楼,netlogo,Netlogo,实际上,我想做的是,如果警报按钮是假的,海龟只会在环境中游荡,然后当紧急警报打开时,海龟会离开大楼,疏散时间将开始增加,直到最后一名特工离开。我想我不能在go程序中写“设置疏散时间疏散时间+1”,因为这将使疏散时间开始计数,即使紧急警报关闭。谢谢。有人能给我一个解决这个问题的办法吗 globals [ time-to-evacuate flag-active-alarm ] to go ask turtles [wander] if (flag-active-alarm )[active-al

实际上,我想做的是,如果警报按钮是假的,海龟只会在环境中游荡,然后当紧急警报打开时,海龟会离开大楼,疏散时间将开始增加,直到最后一名特工离开。我想我不能在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

在代码的其他地方,添加以下内容:

set time-to-evacuate time-to-evacuate + 1
无论你想在哪里,定时器都会递增。典型的位置是在您的
go
程序中:

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

现在我明白了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