我有个体(海龟)和家庭(固定xy的海龟)我有一个变量地址存储在家庭。我有一些家庭附属的个人。家庭数量是一样的。我如何将这些个人安置到他们相应的家庭?我试过这样写:
ask individuals
[ if family = [family-place] of household
[
move-to [address] of household
]
]
因为这是一个缓慢的星期一早晨,我是这样做的。我假设 family -number是活动海龟和不活动海龟中常见的数目的名称。我将使用let来创建一个只在过程中工作的局部变量。(参见步骤go-home)
breed [walkers walker]
breed [houses house]
houses-own [family-number]
walkers-own [family-number]
to setup
clear-all
set-default-shape houses "house"
create-houses 10 [
setxy random-xcor random-ycor
set family-number random 10000
]
reset-ticks
end
to leave-home
ask houses [
hatch-walkers 1 [
set family-number [family-number] of myself
set color [color] of myself
set heading random 360
fd 1
]
]
end
to go
ask walkers [
rt random 120
lt random 120
fd 1
]
tick
end
to go-home
ask walkers [
let family-place one-of houses with [family-number = [family-number] of myself]
move-to family-place
fd 1 ;; walker will step away one step so we can see him.
]
end
只需将其复制到NetLogo中,为每个程序制作一个按钮并播放。在
的顺序中效果最好setup
leave-home
go
go-home
希望这对你有帮助!
move-to household
应该这样做
我很难理解你的问题,所以我不得不猜测你想要什么,但是在你对Bryan的回答的评论的帮助下,也许我猜对了?
ask individuals [
move-to one-of households with [address = [family-place] of myself]
]
如果因为myself
而让你感到困惑,你也可以这样写:
ask individuals [
let f family-place
move-to one-of households with [address = f]
]