删除不同品种的海龟之间的联系

问题描述 投票:1回答:1

如果条件满足,我想放弃一只乌龟和另一只具有不同品种的乌龟之间的联系。我正在使用以下代码执行此操作:

ask one-of turtle1 [
if any? my-out-links with [breed = turtle2]
 [ask one-of out-link-neighbors with [breed = turtle2 and value < 0.7]  ;; value should refer to a neighbour's characteristics and it represents my condition
  [die]  
   ]
]

但是链接似乎保持不变。未删除任何链接。

[能否请您告诉我代码中的错误以及如何相应解决?

非常感谢

netlogo
1个回答
1
投票

我假设turtle1turtle2是两种海龟。如果是这样,

if any? my-out-links with [breed = turtle2]

将永远不会找到任何这样的出站链接,因为您正在检查my-out-links中是否有任何一个是turtle2品种,当然没有links是那个品种。您想知道链接另一端的海龟是否为turtle2品种。由于这些是定向链接,因此您要检查的乌龟在end2

if any? my-out-links with [[breed] of end2 = turtle2]

将让您知道my-out-links另一端的任何海龟是否为turtle2品种。

ask one-of out-link-neighbors with [breed = turtle2 and value < 0.7] [die]

可能比您预期的要多。它要求品种turtle2且链接为value < 0.7的链接邻居turtle死亡。这确实也会杀死该链接(因为它已经失去了end2),但是如果您想杀死该链接而不是另一端的乌龟,则可以在一行中完成所有操作

ask one-of turtle1 [
ask one-of my-out-links with [[breed = turtle2 and value < 0.7] of end2] [die]
]

如果没有此类出站链接,则您将询问nobody,而询问将不起作用。

希望这会有所帮助,查尔斯

© www.soinside.com 2019 - 2024. All rights reserved.