我已经搜索了上周的所有主题,但仍然无法找到问题的解决方案。方案如下:
为了做到这一点,我想我需要一个程序来找出一只乌龟的id,然后告诉我这只乌龟与哪只乌龟相关联。例如,我有一组4只乌龟,彼此相连。他们的ids是1,2,3,4。现在我想得到每只乌龟的清单,它也告诉我它与谁有联系。这是一个示例列表:
Turtle 1 -> Linked to Turtle 2, 3 and 4
Turtle 2 -> Linked to Turtle 1, 3 and 4
...
Turtle 4 -> Linked to Turtle 1, 2 and 3
一旦我现在这个(虽然可能有一个更容易的方式)。我可以为这4只海龟分配一个群组ID。
非常感谢任何反馈/帮助。
以下是代码的一部分:
to go
ask turtles [
set neighbours turtle-set turtles in-radius neighbourhood
set turtle-dim-similar min-one-of other neighbours [myfunc myself self]
create-link-with turtle-dim-similar
]
set beasts sort-by [[who] of ?1 < [who] of ?2] turtles
foreach beasts [
ask ? [ ;; each agent undertakes the list of commands
set closest sort [link-neighbors] of turtle who
print (word "id:" who " ; val1:" value1 " ; val2:" value2 " ; closest:" closest)
]
]
end
答案 0 :(得分:2)
如果您正在使用定向链接,即使用create-link-to创建的链接,则创建链接,创建链接或创建链接来自外链接邻居是您正在寻找的。它报告了一组与之相关的乌龟。
如果您使用的是非定向链接,使用create-link-with或create-links-with创建的链接,请使用链接邻居。
这解决了下半年使用递归问题的第一部分。
Turtles-own[group-id]
To id [tag]
Set group-id tag
Ask link-neighbors with[Group-id != tag]
[Id tag]
End