首页 > 解决方案 > 删除不同品种海龟之间的链接

问题描述

如果满足条件,我想删除一只乌龟和另一只不同品种的乌龟之间的链接。我正在使用以下代码来执行此操作:

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

解决方案


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

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

永远不会找到任何这样的链接,因为您正在检查是否有任何一个my-out-links是品种turtle2,当然没有链接是那个品种的。您想知道链接另一端的海龟是否是品种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]

可能做的比你想要的更多。它要求一个链接邻居的品种turtle2value < 0.7死亡。这确实也会杀死链接(因为它已经丢失了它end2),但是如果你想杀死链接而不是另一端的海龟,你可以在一行中完成所有这些

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

如果没有这样的外链,那么您将询问nobody,询问将无济于事。


推荐阅读