首页 > 解决方案 > 如何将链接海龟移动到 Netlogo 中链接海龟之一的位置?

问题描述

我创建了一个带有海龟的模型,这些海龟通过链接组织成组。

现在我想将这个“组”的所有链接海龟移动到该组的一个成员(可以是随机的)的位置。

我尝试了不同的方法,但结果不是我想做的。这是我尝试过的:

breed [AT1 AT1_1]
turtles-own [home-location]

to meet
   ask AT1 [
   let group-home one-of [home-location] of link-neighbors
   move-to get-home

是否可以通过链接来执行此操作,或者我应该/我也可以将组生成为海龟自己的组?

标签: netlogo

解决方案


除非你正在做一些真正花哨的事情,否则每只海龟的位置已经总是作为变量 xcor 和 ycor 拥有。您不需要创建新的可变家庭位置。

因此,如果您只希望 AT1 中的所有海龟都集中在其中一个的位置,这将起作用:

to meet
  let target one-of AT1
  ask AT1 [ 
     move-to target   
   ]
end

请注意,设置目标是在“询问 ATI”循环之外,否则您将得不到您想要的。

如果你真的有每只海龟的“home-location”可能与它现在所在的位置不同,那么它需要是一个 x 坐标和 y 坐标的列表,或者你需要两个变量,比如 home-location- x 和家庭位置-y 。

如果你这样做,那么这将作为满足代码工作;

to meet2
  let target one-of AT1
  let tx [home-location-x] of target
  let ty [home-location-y] of target
  ask AT1 [ setxy  tx ty ]
end

推荐阅读