我正在编写一个实用程序,用于标识某些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
来使用网络扩展,但是想要更好的方法,并且可能需要对链接过程执行相同的一般操作。 ;没有版本。
答案 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]