如何在netlogo中创建链接,并要求链接邻居根据链接长度执行命令?

如何在netlogo中创建链接,并要求链接邻居根据链接长度执行命令?,netlogo,Netlogo,我一直在尝试将BREED1(静止)的海龟与breed2(移动)的海龟联系起来,后者是BREED1的邻居。我这样做是为了根据BREED1和breed2之间的链接长度更改变量。 (你可以说BREED1代表房屋,breed2代表人,我想根据他们与房屋之间的距离(BREED1与他们相连),改变人们是否受到“保护”的事实。) 我不知道这是否是最好的方法,但这是我的代码,我知道它不起作用,因为默认情况下“protected”变量总是false to protect ask n-of total-number

我一直在尝试将BREED1(静止)的海龟与breed2(移动)的海龟联系起来,后者是BREED1的邻居。我这样做是为了根据BREED1和breed2之间的链接长度更改变量。 (你可以说BREED1代表房屋,breed2代表人,我想根据他们与房屋之间的距离(BREED1与他们相连),改变人们是否受到“保护”的事实。) 我不知道这是否是最好的方法,但这是我的代码,我知道它不起作用,因为默认情况下“protected”变量总是false

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按不同的距离分开,其中一些位于同一个补丁或相邻补丁上。我认为可能还有另一个问题。你能发布更多的代码吗?对不起,我发现了这个问题!谢谢你的时间,你这摇滚乐:)