Netlogo:如果变量值相同,则让代理链接

Netlogo:如果变量值相同,则让代理链接,netlogo,Netlogo,我试图让两种代理(xagents和yagents)检查变量在xagents半径内移动时的值是否相同。然后他们应该联系起来 当我尝试下面的代码时,它们是链接的,但当我检查链接代理的值时,变量值不相等;它们不应该相互关联。问题程序位于代码末尾。你知道为什么吗 当我可以通过这个部分时,我希望代理更改另一个变量的值,但前提是它们的值与VAR1相同(因此是链接) 这里有一些问题可能会给您带来问题。第一: set var1 random-normal 5 1 如果需要进行匹配,则两个代理共享随机正常中的值

我试图让两种代理(xagents和yagents)检查变量在xagents半径内移动时的值是否相同。然后他们应该联系起来

当我尝试下面的代码时,它们是链接的,但当我检查链接代理的值时,变量值不相等;它们不应该相互关联。问题程序位于代码末尾。你知道为什么吗

当我可以通过这个部分时,我希望代理更改另一个变量的值,但前提是它们的值与VAR1相同(因此是链接)


这里有一些问题可能会给您带来问题。第一:

set var1 random-normal 5 1
如果需要进行匹配,则两个代理共享
随机正常
中的值的可能性极低-它返回一个浮点值:

observer> show random-normal 5 1
observer: 4.051232264359846
选择另一种方法为
var1
选择值(例如
random poisson
,或[1 2 3 4 5]中的一种),否则将无法获得匹配项。原始代码提供链接的唯一原因是
其他xagents
未包含在您的
代码块中,以进行通信
代码块(见下文)

在这里,您应该使用
其他xagents
,或者您将包括询问代理,而不仅仅是radius 1中的其他

      [create-links-with other yagents-here 
        ...
因此,在这里,您已经使用条件选择了要形成链接的
xagents
,但相同的条件不适用于
yagents
端。因此,您得到了
xagents
与此处的任何
yagents
建立链接。要解决这一问题,只需确保
yagents
还必须具有您所追求的
var1
,例如:

to communicate
  ask other xagents in-radius 3 with [var1 = [var1] of myself]
  [create-links-with yagents in-radius 3 with [var1 = 2 ]
    [
      set color white
      set thickness 0.1
    ]
  ]
end 

成功了!谢谢有没有办法限制代理链接的次数?假设我想在xagent达到五个链接后停止它与yagents的链接。这是一个单独的问题-请打开一个新问题来提问。
      [create-links-with other yagents-here 
        ...
to communicate
  ask other xagents in-radius 3 with [var1 = [var1] of myself]
  [create-links-with yagents in-radius 3 with [var1 = 2 ]
    [
      set color white
      set thickness 0.1
    ]
  ]
end