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步的描述,这似乎是关键的一步。我猜不出你写的代码背后的意图是什么。你可能试图通过一次编写一个复杂的过程来一次学到太多东西。这可能会有帮助:编写一个更简单的版本;让它工作起来;尝试对其进行一个很小的改进,并使其发挥作用;等等如果在任何时候你被卡住了,到这里来,展示你的代码,并问一个关于它的特定问题。