NetLogo传递链接品种作为程序参数

时间:2015-10-22 13:42:01

标签: netlogo

我正在编写一个实用程序,用于标识某些turtle-set中所有节点的所有新link-neighbors。我希望能够对任何链接品种使用相同的过程。该函数看起来像这样(未经测试)。

to-report all-neighbours [ NODESET EDGETYPE ]
  let nbr nobody 
  ask NODESET [ set nbr (turtle-set nbr EDGETYPE-neighbors) ]
  report nbr with [ not member? self NODESET ]
end

这将使语法检查程序失败,因为EDGETYPE-neighbors不是breed-neighbors的有效版本。有没有办法将链接品种传递给被调用的程序?

我想我可以使用nw:set-context NODESET EDGETYPE然后nw:turtles-in-radius 1来使用网络扩展,但是想要更好的方法,并且可能需要对链接过程执行相同的一般操作。 ;没有版本。

1 个答案:

答案 0 :(得分:2)

获取指定品种的所有链接,并使用[other-end]获取海龟:

to-report all-neighbours [ NODESET EDGETYPE ]
  let nbr nobody 
  ask NODESET [set nbr (turtle-set nbr [other-end] of (my-links with [breed = EDGETYPE]))]
  report nbr with [ not member? self NODESET ]
end

用法(如果你的品种是关系/关系):

ask all-neighbours (turtle-set turtle 0) relations [show self]