Netlogo:移动海龟并计算距离
我目前正在做关于路径规划的项目 因此,我的计划步骤如下: 单击“设置”以排列所有坐标 单击开始创建移动的海龟 单击“转到”以使移动的海龟转到最近的带有x的坐标标签 这意味着,在第4步,移动的海龟已经计算出它与每个坐标的距离。 这里我附上了接口和编码Netlogo:移动海龟并计算距离,netlogo,Netlogo,我目前正在做关于路径规划的项目 因此,我的计划步骤如下: 单击“设置”以排列所有坐标 单击开始创建移动的海龟 单击“转到”以使移动的海龟转到最近的带有x的坐标标签 这意味着,在第4步,移动的海龟已经计算出它与每个坐标的距离。 这里我附上了接口和编码 to setup clear-all set-default-shape turtles "x" create-turtles 9 ask turtles[set color red] ask turtle 0[setxy 0 15]
to setup
clear-all
set-default-shape turtles "x"
create-turtles 9
ask turtles[set color red]
ask turtle 0[setxy 0 15]
ask turtle 1[setxy 4 15]
ask turtle 2[setxy -4 15]
ask turtle 3[setxy 0 12]
ask turtle 4[setxy 4 12]
ask turtle 5[setxy -4 12]
ask turtle 6[setxy 0 9]
ask turtle 7[setxy 4 9]
ask turtle 8[setxy -4 9]
end
to start
set-default-shape turtles "airplane"
create-turtles 1
ask turtle 9[setxy 0 -15]
end
不要忘记,距离取决于您的拓扑结构
to setup
clear-all
let targets [
[0 15] [4 15] [-4 15]
[0 12] [4 12] [-4 12]
[0 9] [4 9] [-4 9]
]
foreach targets [xy -> ask patch item 0 xy item 1 xy [
sprout 1 [set shape "x" set color red]
]
]
create-turtles 1 [ set shape "airplane" setxy 0 -15]
end
编辑:如果你将所有其他海龟视为合格的目标,那么一旦你将海龟9移动到一个目标,它将停留在那里。如果你不想这样,你就说同一地点的海龟不符合条件:
to move
ask turtle 9 [move-to min-one-of eligibles [distance myself]]
end
to-report eligibles
report turtles with [0 < distance myself]
end
谢谢你,艾伦。但是当我使用给定的编码时,系统说没有一个名为XY的defined@AzamAsri-你有什么版本的Netlogo?Alan的代码被复制到一个全新的文件中,在Netlogo 6.0.2中对我有效,但是如果你有6.0,你可能需要更改。。。[xy->…至…[[xy]->…哦,我明白了。我有5.0.4版。我会先尝试更新好的。我刚刚更新了它,它正在工作。但是,乌龟只是在它停止后移动到一个位置。我想因为它发现最近的乌龟在它下面。如何解决它?@AzamAsri很乐意提供帮助,欢迎使用堆栈溢出。如果这个答案或任何其他答案解决了您的问题问题,谢谢。