netlogo - 如何将链接海龟移动到 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
是否可以通过链接来执行此操作,或者我应该/我也可以将组生成为海龟自己的组?
解决方案
除非你正在做一些真正花哨的事情,否则每只海龟的位置已经总是作为变量 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
推荐阅读
- python - AttributeError:“函数”对象没有属性“b64encode”
- typescript - 使用 TypeScript 声明自定义类型以及如何测试它?
- c - 生活游戏中的循环和复杂性
- mongodb - 使用主机公网 IP 连接到 MongoDB atlas
- java - 如何在迭代期间添加项目时修复 ConcurrentModificationException 错误
- c# - 为什么 await Task.Run() 不会返回同一个线程?
- python - 使用 Python 和 BeautifulSoup 进行抓取,循环出现问题(初学者)
- windows - WM_SIZE 处理程序中 PostQuitMessage 后没有 WM_QUIT
- spring-batch - Spring Cloud Data Flow 任务在执行之间保持参数
- javascript - nodejs对象中的字符串操作