在彼此附近创造 1000 只海龟
Create 1000 turtles near each others
我必须创建很多海龟,形成一个任意形状的紧凑组,一个简单的 10x100 矩形就足够了。重要的是他们必须彼此靠近。
在 c 中我会做这样的事情:
for(x = 1; x <= rows; x++)
{
for(y = 1; y <= columns; y++)
{
create_turtle(x,y);
}
}
而 netlogo 中的等价物是:
crt 1000
let n 0
let x 1
let y 1
while[y <= 10]
[
set x 1
while[x <= 100]
[
ask turtle n
[move-to patch x y]
set x x + 1
set n n + 1
]
set y y + 1
]
但这不是一个优雅的解决方案。有什么建议吗?
编辑:更准确地说,我必须重现这篇文章中所做的事情:http://science.sciencemag.org/content/345/6198/795.full
每只乌龟都是一个小机器人。
在这里你可以看到一种定位海龟的方法 turtles schema
我正在使用像文章中的机器人一样的圆龟。
其他语言的程序员在学习 NetLogo 时最棘手的事情之一就是摆脱所有循环。遍历代理或补丁嵌入在 ask
原语中,您无需编写迭代代码。 ask
也以随机顺序迭代,这样重复的过程不会给循环中最先出现的代理带来任何优势。
此外,当您创建海龟时,您可以立即给它们下达指令。您也可以将它们最初放置在任意位置,而不是将它们移动到那里。这是一个解决方案,将它们全部放置在一个矩形中,该矩形距离中心 (0,0) 的 left/right 有 5 个补丁,并且占据世界高度的一半。
create-turtles 1000 [ setxy random-float 10 - 5 random-ycor * 0.5 ]
根据编辑,我认为您希望它们在网格点处创建,而不是在 space 内随机创建。如果那是真的,那么 select 你想要的 patches
并要求他们 sprout
一只乌龟。
let in-shape patches with [ pxcor >= -10 and pxcor <= 10 and pycor >= -10 and pycor <= 10 ]
ask in-shape [ sprout 1 ]
你需要制定出自己的价值观,并确保它们在世界维度内。
我必须创建很多海龟,形成一个任意形状的紧凑组,一个简单的 10x100 矩形就足够了。重要的是他们必须彼此靠近。 在 c 中我会做这样的事情:
for(x = 1; x <= rows; x++)
{
for(y = 1; y <= columns; y++)
{
create_turtle(x,y);
}
}
而 netlogo 中的等价物是:
crt 1000
let n 0
let x 1
let y 1
while[y <= 10]
[
set x 1
while[x <= 100]
[
ask turtle n
[move-to patch x y]
set x x + 1
set n n + 1
]
set y y + 1
]
但这不是一个优雅的解决方案。有什么建议吗?
编辑:更准确地说,我必须重现这篇文章中所做的事情:http://science.sciencemag.org/content/345/6198/795.full
每只乌龟都是一个小机器人。
在这里你可以看到一种定位海龟的方法 turtles schema
我正在使用像文章中的机器人一样的圆龟。
其他语言的程序员在学习 NetLogo 时最棘手的事情之一就是摆脱所有循环。遍历代理或补丁嵌入在 ask
原语中,您无需编写迭代代码。 ask
也以随机顺序迭代,这样重复的过程不会给循环中最先出现的代理带来任何优势。
此外,当您创建海龟时,您可以立即给它们下达指令。您也可以将它们最初放置在任意位置,而不是将它们移动到那里。这是一个解决方案,将它们全部放置在一个矩形中,该矩形距离中心 (0,0) 的 left/right 有 5 个补丁,并且占据世界高度的一半。
create-turtles 1000 [ setxy random-float 10 - 5 random-ycor * 0.5 ]
根据编辑,我认为您希望它们在网格点处创建,而不是在 space 内随机创建。如果那是真的,那么 select 你想要的 patches
并要求他们 sprout
一只乌龟。
let in-shape patches with [ pxcor >= -10 and pxcor <= 10 and pycor >= -10 and pycor <= 10 ]
ask in-shape [ sprout 1 ]
你需要制定出自己的价值观,并确保它们在世界维度内。