NetLogo - 获得' who'在同一个补丁中的另一只乌龟

时间:2016-12-06 14:24:54

标签: netlogo

我希望获得与另一个人占用相同补丁的乌龟的海龟ID,然后将其作为项目添加到两个海龟的列表中。

例如,说乌龟A和海龟B在同一个补丁上,我想将海龟A的人员存放在海龟B的列表中,将海龟B的人员存储在海龟A的列表中。

我意识到这可能是一件非常简单的事情,所以我尝试使用以下代码执行此操作:

  if not any? turtles-on neighbors[
    if who != who[
      set collision-list fput (list (who)) collision-list
    ]
  ]

在这里,我检查补丁以查看它是否包含另一只乌龟,如果确实如此,我试图存储谁(使用条件,如果谁与当前不同(如果不是),则将其存储在每个代理的冲突列表中。

1 个答案:

答案 0 :(得分:1)

通常使用who数字代替海龟本身是错误的。因此,我将说明如何增加一个"碰撞列表"海龟。

turtles-own [clist]
to setup
  ca
  crt 100 [
    setxy random-xcor random-ycor
    set clist []
  ]
  ask turtles [adjust-clist]
end

to adjust-clist ;turtle proc
  let _ts [self] of (other turtles-here)
  set clist (sentence _ts clist)
end