好吧,首先,如果海龟 1、2、3 和 4 存在,您的示例代码应该可以工作。NetLogo 中的海龟是从 索引的0
,所以我怀疑你可能正在做类似的事情:
create-turtles 4
(foreach [1 2 3 4] [-16 -16 -16 -16] [12 11 10 9] [ask turtle ?1 [setxy ?2 ?3]])
并得到类似的东西:
ASK expected input to be an agent or agentset but got NOBODY instead.
...因为您的代码正在尝试ask
一个turtle 4
不存在的。将您的第一个列表更改为[0 1 2 3]
可以解决此问题。
现在这是做你想做的最好的方法吗?我没有足够的信息来确定,但我怀疑你想要更接近的东西:
clear-all
let coordinates [[-16 12] [-16 11] [-16 10] [-16 9]]
create-turtles length coordinates
(foreach (sort turtles) coordinates [
ask ?1 [ setxy item 0 ?2 item 1 ?2 ]
])
sort turtles
如果您知道将turtles
代理集转换为列表并item
允许您获取列表中的特定项目,您应该能够弄清楚它是如何工作的。
编辑:
做create-turtles length coordinates
而不是类似的事情create-turtles 4
将确保您拥有与您定义的坐标数量相同的海龟数量,但这可能适用于您的情况,也可能不适用于您的情况。
编辑2:
一个更简单的方法是:
clear-all
let coordinates [[-16 12] [-16 11] [-16 10] [-16 9]]
foreach coordinates [
create-turtles 1 [ setxy item 0 ? item 1 ? ]
]