如何在netlogo中创建链接,并要求链接邻居根据链接长度执行命令?
我一直在尝试将BREED1(静止)的海龟与breed2(移动)的海龟联系起来,后者是BREED1的邻居。我这样做是为了根据BREED1和breed2之间的链接长度更改变量。 (你可以说BREED1代表房屋,breed2代表人,我想根据他们与房屋之间的距离(BREED1与他们相连),改变人们是否受到“保护”的事实。) 我不知道这是否是最好的方法,但这是我的代码,我知道它不起作用,因为默认情况下“protected”变量总是false如何在netlogo中创建链接,并要求链接邻居根据链接长度执行命令?,netlogo,Netlogo,我一直在尝试将BREED1(静止)的海龟与breed2(移动)的海龟联系起来,后者是BREED1的邻居。我这样做是为了根据BREED1和breed2之间的链接长度更改变量。 (你可以说BREED1代表房屋,breed2代表人,我想根据他们与房屋之间的距离(BREED1与他们相连),改变人们是否受到“保护”的事实。) 我不知道这是否是最好的方法,但这是我的代码,我知道它不起作用,因为默认情况下“protected”变量总是false to protect ask n-of total-number
to protect
ask n-of total-number-BREED1 BREED1
[ if any? breed2-on neighbors
[ create-link-with [who] of breed2-on neighbors]
ask link-neighbors
[ set protected true]
]
我还想补充一个关于链接长度的部分
ask link-neighbors
[ ifelse link-length < 2
[set protected true]
[set protected false]]
询问链接邻居
[ifelse链接长度<2
[设置为真]
[将受保护设置为false]]
谢谢你的帮助 尝试在相邻面片上创建与breed2的链接:
ask BREED1
[
if any? breed2-on neighbors [ create-links-with breed2-on neighbors]
ask link-neighbors [ set protected true]
]
这就是breed1和它的邻居之间的链接长度
ask BREED1
[
ask link-neighbors
[
if [link-length] of link-with myself < 2 [ do something]
]
]
ask BREED1
[
询问链接邻居
[
如果我自己的链接的[链接长度]小于2[做点什么]
]
]
注意:链接长度是从链接的角度调用的,因此您需要获取连接两个东西的链接。它仍然不工作,我使用的监视器是“count breed2 with[protected=true]”,它保持在0,加上另一部分代码(取决于受保护的值是否为真)未执行:/n邻居之间的距离有多远?如果它们是2或更大,则不受保护。BREED1和breed2按不同的距离分开,其中一些位于同一个补丁或相邻补丁上。我认为可能还有另一个问题。你能发布更多的代码吗?对不起,我发现了这个问题!谢谢你的时间,你这摇滚乐:)