我有一个模拟,海龟走到红色斑块并死亡,这是有效的,但是只要大多数/所有海龟死亡,其中n-of
的所有内容都会报告错误。我确实理解错误,因为模拟试图获得n-of
而没有留下乌龟,但我该如何解决?有没有办法在模拟结束时使用n-of所有的海龟都死了?
如果有,我该怎么做?
如果没有,是否有另一种方法让海龟死在红色斑块上?
我的模拟需要每只乌龟一走上红色斑块就会消失,但是它们不能相互走动,这会让它们很难让它们聚集在一个红色斑块上(大约有500只乌龟)
谢谢! 编辑: 我编辑了我的代码,所以我不再需要n-of了。现在,我想要一只乌龟将笔模式设置为“向下”的代码部分是
to go
....
ask one-of turtles [set pen-mode "down"]
....
end
现在出现错误消息:
ASK预期输入为代理或代理集,但取而代之的是NOBODY。 观察者运行ASK时出错 由程序GO调用 按钮'go'调用
一旦模拟结束。
建议使用one-of turtles
,但现在每只乌龟都将其笔模式设置为“向下”,但我只想要一只乌龟这样做。
答案 0 :(得分:2)
基本上,你想要使用最多n
只乌龟。也就是说,如果至少有n
只龟,你应该使用它们的n
,否则你应该只使用所有的海龟。我们可以很容易地把它变成记者:
to-report at-most-n-of [ n agentset ]
ifelse count agentset > n [
report n-of n agentset
] [
report agentset
]
end
您使用的方法与n-of
完全相同,但如果没有足够的海龟,则不会出现错误。
答案 1 :(得分:2)
您没有告诉我们您使用n-of
的内容,因此很难提出替代方法。但一般来说,当没有足够的海龟可供选择时防止n-of
崩溃的方法是使用类似的东西:
n-of (min list n count turtles) turtles
其中n
是您希望选择的海龟数量。