Netlogo:询问"最大数量"

时间:2018-05-15 05:08:25

标签: netlogo

有没有办法要求一定数量的补丁?例如,要求最多100个补丁,但只有50个可用,因此该操作将采用这50个补丁。感谢。

1 个答案:

答案 0 :(得分:3)

目前这样做的方法如下:

to-report at-most [n agents]
  report ifelse-value (n <= count agents) [ agents ] [ n-of n agents ]
end

然后你可以说ask at-most 100 patches [ ... ],你会得到你想要的东西。

请注意,如果您的变量有可能包含nobody而不是代理集,则此方法无效。在这种情况下,您可以使用nobodypatch-setturtle-setlink-set转换为代理集,具体取决于您希望它包含的代理类型。例如:

ask one-of turtle-set other turtles-here [ ... ]

请注意,在不久的将来,跳过所有这些环节的需要可能会消失。目前有一个开放的提案是向NetLogo添加一个原语来处理这些情况:https://github.com/NetLogo/NetLogo/issues/1594