一旦海龟用完了NetLogo中的"wealth",如何停止自动收报机



**> 嗨,我是NetLogo的新手,这是我的第一个模型。基本上,我会

就像"滴答机"一样,一旦海龟花完了他们的 "财富"。我尝试查看各种模型,如果我可以复制/调整一些代码,但无济于事。感谢任何帮助 我能得到。谢谢**

turtles-own [wealth]
patches-own [income]
to setup
ca
setup-turtles
setup-patches
reset-ticks
end
to setup-turtles
create-turtles 1000
ask turtles
[
set shape "person"
set size 1
setxy random-xcor random-ycor
set wealth 100
]
end
to setup-patches
ask n-of 4000 patches [ set pcolor green ]
end

to go
move-turtles
spend
tick
end
to move-turtles
ask turtles [
ifelse wealth > 0
[rt random 360 forward 1]
[stop]
]
end

to spend
ask turtles [
if pcolor = green [
set wealth wealth - 1
set income income + 1
]
]
end

欢迎来到NetLogo。stop是一个有趣的命令,可以在不同的地方做不同的事情。 特别是,它不会停止模拟,除非在go过程中或直接从 过程中调用它。 如果它确实阻止了模型从你放置它的地方,它会在第一只获得零财富时这样做,我假设,你希望模型只有在所有的财富为零时才停止。 我建议按如下方式修改模型:

to go
if not any? turtles with [wealth > 0] [stop]
move-turtles
spend
tick
end
to move-turtles
ask turtles [
if wealth > 0
[rt random 360 forward 1]
]
end

to spend
ask turtles with [wealth > 0] [
if pcolor = green [
set wealth wealth - 1
set income income + 1
]
]
end

go程序现在检查每个逐笔报价结束时的停止条件。 我还在spend中添加了一条线,以防止绿色斑块上的海龟的财富变为负值,尽管负财富可能对您有意义。 如果是这样,你可以把那条线拿出来。