如何将海龟移到一起,没有其他海龟的自由邻居占据它们

时间:2014-07-01 15:43:18

标签: netlogo

我希望移动与其他海龟有“安全距离”的海龟,例如一个补丁。 这是我的代码:

ask turtles [
       let q neighbors with [
         (not any? turtles-here) and (not any? other turtles-on neighbors) 
       ]
       if any? q [
         face one-of q 
         move-to patch-ahead 1
         ]
      ]
    if any? turtles-on neighbors [   ?????   ]

开始条件是每只乌龟没有乌龟 - 邻居。 此外,我希望海龟找到一个新的补丁,如果乌龟在q或任何乌龟 - 在q邻居,但我不知道..

我也试着这个:

移动

ask turtles [
   set ahead patches at-points [[2 1] [2 0] [2 -1]]
   set neighbors-e patch-at 1 0 
     ask turtles with [not any? turtles-on ahead] [
       let d distance exit                          ;exit is patch "target"
       if (distance [exit] of neighbors-e < d) [
         fd 1
       ]
     ]
   ]

但它显示错误:A patch can't access a turtle variable without specifying which turtle. (refer to neighbors-e)

这个想法是:

  1. 在距离2
  2. 前面看3个补丁
  3. 若有?海龟 - 在此
  4. 控制你去的出口距离(邻居-e)是否小于实际位置(以确认退出方向是否正确)
  5. fd 1

0 个答案:

没有答案