您的问题是,每次您这样做时one-of
,它都会随机选择。所以你在第一行测试一个随机的链接邻居,发现它是真的,然后随机选择一个链接邻居来连接。
[ ask turtles with [ [ who ] of self < [who] of one-of link-neighbors ]
create-direct-to turtle [who] of one-of link-neighbors
]
更一般地说,这似乎是实现目标的一种奇怪方式。首先,链接邻居是海龟已经链接到的海龟。link
是所有链接品种的通用名称(我认为您已经创建了一个名为直接链接的品种)。
我不完全清楚您所说的最小值和最大值是什么意思,因为您的代码只是从较小的值到较大的who
值,而不管其他who
值是可用的。如果你想创建一个从每个乌龟到每个具有更高who
值的乌龟的链接,这里有一些代码:
ask turtles
[ let targets turtles with [who > [who] of myself]
create-links-to targets
]
一般来说,who
在 NetLogo 代码中使用是不好的做法。who
是一个完全任意的标识符,它只是跟踪海龟的创建顺序。如果你的海龟死了,那么你的代码可能会崩溃,因为它指的是不再存在的海龟。或者也许在某个时候你会有两种乌龟——who
不管你的乌龟是人、狗、工厂还是……
这可能是极少数例外之一,但您可能需要考虑一下您的who
意思。例如,由于这是一个领导模型,也许您可以有一个名为“魅力”的变量,并且所有链接都是从魅力值较低的海龟到魅力值较高的乌龟。