Netlogo 如何把海龟们一起移动自由的邻居没有其他海龟占据他们

Netlogo 如何把海龟们一起移动自由的邻居没有其他海龟占据他们,netlogo,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 ]

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

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
       ]
     ]
   ]
结束

但是它显示了一个错误:补丁程序在没有指定哪个海龟的情况下无法访问海龟变量。请参阅附件-e

这个想法是:

向前看3个补丁,距离为2 如果有的话?海龟在这上面 控制您将要到达的出口距离e是否小于实际位置,以验证出口方向是否正确 fd 1
很明显,代码没有运行..密切相关:我想提供帮助,但您对您尝试执行的操作的描述很难理解-尤其是您对第3步的描述,这似乎是关键的一步。我猜不出你写的代码背后的意图是什么。你可能试图通过一次编写一个复杂的过程来一次学到太多东西。这可能会有帮助:编写一个更简单的版本;让它工作起来;尝试对其进行一个很小的改进,并使其发挥作用;等等如果在任何时候你被卡住了,到这里来,展示你的代码,并问一个关于它的特定问题。