NetLogo:n-所有海龟死亡时的错误

NetLogo:n-所有海龟死亡时的错误,netlogo,die,Netlogo,Die,我有一个模拟,海龟在红色斑块上行走并死亡,这是可行的,但是当大多数海龟死亡时,所有带有n-of的东西都会报告一个错误。我确实理解这个错误,因为模拟试图在没有海龟的情况下获得n-of,但是我该如何修复它呢?在模拟结束时,所有海龟都死了,有没有办法使用n-of? 如果有,我怎么做?, 如果没有,有没有其他办法让海龟死在红色斑块上? 我的模拟需要每只海龟在红色斑块上行走时立即离开,但它们不能在彼此上方行走,这使得它们很难聚集在一个红色斑块上(大约有500只海龟) 谢谢大家!! 编辑: 我编辑了我的代码

我有一个模拟,海龟在红色斑块上行走并死亡,这是可行的,但是当大多数海龟死亡时,所有带有
n-of
的东西都会报告一个错误。我确实理解这个错误,因为模拟试图在没有海龟的情况下获得
n-of
,但是我该如何修复它呢?在模拟结束时,所有海龟都死了,有没有办法使用n-of? 如果有,我怎么做?, 如果没有,有没有其他办法让海龟死在红色斑块上? 我的模拟需要每只海龟在红色斑块上行走时立即离开,但它们不能在彼此上方行走,这使得它们很难聚集在一个红色斑块上(大约有500只海龟)

谢谢大家!! 编辑: 我编辑了我的代码,这样我就不再需要n-of了。现在,在我的代码中,我希望一只乌龟将笔模式设置为“向下”的部分是

要走了
....
询问其中一只海龟[将笔模式设置为“向下”]
....
结束

现在,错误消息是:

请求期望的输入为代理或代理集,但没有得到任何人。 观察者运行ASK时出错 通过程序GO调用 按“开始”按钮调用

一旦模拟结束


有人建议使用一只海龟,但现在每只海龟都会将笔模式设置为“向下”,但我只想让一只海龟这样做。

基本上,你最多只想使用
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
完全相同,但如果没有足够的海龟,则不会出错。

基本上,您最多要使用
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
完全相同,但如果海龟数量不足,则不会出错。

您没有告诉我们您使用
n-of
的目的,因此很难建议其他方法。但一般来说,当没有足够的海龟可供选择时,防止
n-of
崩溃的方法是:

n-of (min list n count turtles) turtles

其中
n
是您希望选择的海龟数量(如果可能)。

您没有告诉我们您使用
n-of
的目的,因此很难建议其他方法。但一般来说,当没有足够的海龟可供选择时,防止
n-of
崩溃的方法是:

n-of (min list n count turtles) turtles

其中
n
是您希望选择的海龟数量(如果可能)。

您应该发布代码和收到的错误消息。您应该发布代码和收到的错误消息。我有大约500个棕色补丁,每个补丁可以繁殖一只海龟。当我告诉200个补丁生成一只海龟(带滑块)时,我有200只海龟,我如何告诉你的代码我有多少只海龟?我是否只需在“n”的位置填入滑块的名称,即使滑块指的是补丁,而不是海龟?还是我完全错了-在上面的代码中,
count turtles
是您当前拥有的海龟数量
n
是您希望从当前拥有的海龟中选择的海龟数量。但我不明白你的问题,因为我不明白你想做什么。你没有错;只是不清楚。你想选择什么?您想选择它做什么?编辑你的问题。发布一些代码。。。至少告诉我们您试图使用
n-of
…我现在更改了代码,但错误大致相同。例如,我想放下一支乌龟笔。“询问turtle random 1[设置笔模式“down”]”但一旦随机海龟死亡,我就会得到一个错误。我可以用你的建议来解决这个问题吗?千万不要试图通过
数字随机选择一只乌龟(这是
乌龟随机1
会做的事情-除了
随机1
总是等于
0
)。如果要随机选择一只海龟,请使用其中一只海龟。但是,在你编辑你的问题并发布你要做的事情的代码之前,我们仍然无法为你提供更多的帮助。我有大约500个棕色补丁,每个补丁可以繁殖一只海龟。当我告诉200个补丁生成一只海龟(带滑块)时,我有200只海龟,我如何告诉你的代码我有多少只海龟?我是否只需在“n”的位置填入滑块的名称,即使滑块指的是补丁,而不是海龟?还是我完全错了-在上面的代码中,
count turtles
是您当前拥有的海龟数量
n
是您希望从当前拥有的海龟中选择的海龟数量。但我不明白你的问题,因为我不明白你想做什么。你没有错;只是不清楚。你想选择什么?您想选择它做什么?编辑你的问题。发布一些代码。。。至少告诉我们您试图使用
n-of
…我现在更改了代码,但错误大致相同。例如,我想放下一支乌龟笔。“询问turtle random 1[设置笔模式“down”]”但一旦随机海龟死亡,我就会得到一个错误。我可以用你的建议来解决这个问题吗?千万不要试图通过
数字随机选择一只乌龟(这是
乌龟随机1
会做的事情-除了
随机1
总是等于
0
)。如果要随机选择一只海龟,请使用其中一只海龟。但是,我们仍然无法为您提供更多帮助,除非您编辑您的问题并发布您尝试执行的操作的代码。