将海龟移动到NetLogo中其他代理的特定坐标



我有个体(海龟)和家庭(固定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]
]

最新更新