一个简单的问题,但我完全失败了。
我有一群需要找到最近邻居的海龟,因为我希望在它们之间建立一个链接。我已经尝试了以下代码,但我一直回来一个空集[找不到任何人]:
ask turtles [create-links-with one-of other turtles with-min [distance myself]]
有人可以指出我正确的方向。
此致
西蒙
答案 0 :(得分:1)
这里有两个问题。
一个是create-links-with
错误,因为one-of
返回单个代理,而不是代理集。您需要create-link-with
。
但主要问题在于这部分:
other turtles with-min [...]
NetLogo将此理解为other (turtles with-min [...])
。这会报告一个空的代理集,因为乌龟本身赢得了with-min
竞争,因为它的距离是零,然后other
消除了那只乌龟,留下了空的代理集。
相反,你必须写:
(other turtles) with-min [...]
因此,将两个修复程序放在一起,我们得到:
ask turtles [
create-link-with one-of (other turtles) with-min [distance myself]
]
如果您愿意,可以使用min-one-of
代替with-min
进一步缩短,如下所示:
ask turtles [
create-link-with min-one-of other turtles [distance myself]
]
我制作了一些海龟并在NetLogo的指挥中心试了一下,我得到了: