如何检查 2 个不同品种的海龟是否在同一个补丁上

How to check if 2 different breeds of turtles are on the same patch

我设计的最后一部分涉及记录汽车品种驶入或在 netlogo 术语中的任何时间,当人们在屏幕边缘导航时,它们位于相同的补丁或 X 和 Y 坐标上。如果这是 java 我可以做类似

的事情

如果Car.xPostion == Person.xPostion

(做点什么...)

但不幸的是,我不知道如何在 NetLogo 中做同样的事情,到目前为止我能做的就是通过给每只乌龟一个布尔变量称为 movable 并将它们设置为 true 来询问这两个品种其余为假,无论如何我可以检查 Netlogo 上两个不同海龟的两个坐标吗?这是我到目前为止所能做的。


to record-accidents

  ask turtles with [movable? = true]

  [

  ]

如果您尝试类似 java 的方法,它会失败,因为海龟位置是连续的并且浮点数几乎总是不相等。

如果我没有正确理解你的问题,你给出了一个名为 movable 的布尔变量?对于汽车设置为 true,对于所有其他品种设置为 false。你不需要这样做,海龟知道它们自己的品种,所以你可以做 ask cars.

要回答您的具体问题,有多种方法可以根据角度(例如,哪个代理人负责)来解决。

您可以识别出有意外的斑块:,这是标题中问题的答案(关于识别具有两个品种的斑块)。

let accident-locations patches with [any? people-here and any? cars-here]
if any? accident-locations
[ ask accident-locations
  [ <do something>

不过你也可以采取乌龟的视角。你可以从被撞到的行人开始。这利用了海龟可以自动访问它们所在补丁的补丁变量(如 turtles-here)这一事实:

let hit people with [any? cars-here]
if any? hit
[ ask hit...

或从汽车:

let hitters cars with [any? people-here]
if any? hitters
[ ask hitters...