作为另一只海龟的一部分,你会如何在空间上联系NetLogo海龟



在NetLogo中,您将如何在空间上处理诸如人们(一种海龟(上车(另一种海龟品种(并四处开车之类的情况?你会一直把它们放在同一块补丁上吗;或者把人们送到某个等待补丁,并用指针变量或链接将他们联系起来?如果你把它们放在同一个补丁上,直觉上这听起来是最好的方法,你会相信这足以知道每辆车里有谁(在这里使用代理集人员(,还是同时使用指针变量或链接?

如果移动命令嵌套得当,这里的人应该足够优秀:

ask cars[move ask people-here [move]]

但这听起来很容易混淆。那么,如果你无论如何都在使用一个链接,为什么要麻烦所有的移动命令呢?

我个人建议使用与tie相结合的链接来解决这个问题。Tie与无向链接相结合,使得如果一只乌龟移动或旋转,其他乌龟也会随之移动或旋转。它也可以与有向链接一起使用,但这对您的问题没有任何好处。

在下面的示例代码中,我让乌龟移动到一辆车上,创建一个与它的链接,然后将自己绑在它上,然后汽车可以驾驶它们四处走动。完成驾驶后,您可以简单地告诉链接到untiedie

breed [cars car]
breed [humans human]
to setup

ca

set-default-shape cars "car"
set-default-shape humans "person"

create-cars 2 [
setxy random-xcor random-ycor
set size 2
]

create-humans 5 [
setxy random-xcor random-ycor
]

end
to get-in

ask humans [
let my-car one-of cars
move-to my-car
create-link-with my-car [tie]
]

end
to move-cars

ask cars [fd 1]

end
to get-out

ask links [die]
ask humans [fd 1]

end

相关内容

  • 没有找到相关文章

最新更新