NetLogo检查海龟是否在同一坐标上

NetLogo检查海龟是否在同一坐标上,netlogo,turtle-graphics,coordinate,Netlogo,Turtle Graphics,Coordinate,我有两个海龟品种,它们在窗户的两边都有,然后只在自己的一边走动 我遇到的问题是,我想不断地检查,看看每种海龟的一个单一实例是否都在同一y坐标上。如果这是真的,我希望这两只乌龟都停下来,但是每一个品种的所有其他乌龟都要继续移动。我知道你可以通过唯一的ID来识别海龟,但我不知道如何使用它以及如何使用正确的语法 用伪代码描述这一点的最好方法是 ask turtles [ if breed1 turtle ycor = breed2 turtle ycor [ stop bree

我有两个海龟品种,它们在窗户的两边都有,然后只在自己的一边走动

我遇到的问题是,我想不断地检查,看看每种海龟的一个单一实例是否都在同一y坐标上。如果这是真的,我希望这两只乌龟都停下来,但是每一个品种的所有其他乌龟都要继续移动。我知道你可以通过唯一的ID来识别海龟,但我不知道如何使用它以及如何使用正确的语法

用伪代码描述这一点的最好方法是

ask turtles [
    if breed1 turtle ycor = breed2 turtle ycor
        [ stop breed1 turtle and breed2 turtle ] ]
更新 试图让代码工作,但仍然没有发生任何事情。不确定是程序的编写方式还是我为阈值选择的数字

to move-turtles
 ask turtles [
if not any? turtles with [ breed != [ breed ] of myself and abs (ycor - [ycor] of myself) < 1 ]
[
ask redteam with [pcolor = green - 3] [
right random 360
forward 1
]
ask redteam with [pcolor != green - 3] [ 
back 1
]
ask blueteam with [pcolor = green - 2] [
right random 360
forward 1
]
ask blueteam with [pcolor != green - 2] [ 
back 1
]]
]
end
移动海龟
问海龟[
如果没有呢?拥有[BREAD!=[BREAD]自我和abs(ycor-[ycor]自我)<1]的海龟
[
用[pcolor=green-3]询问redteam[
右随机360
转发1
]
用[pcolor!=绿色-3]询问redteam[
背面1
]
向blueteam询问[pcolor=green-2][
右随机360
转发1
]
用[pcolor!=green-2][
背面1
]]
]
结束
请注意,“同一坐标”实际上有点含糊不清。如果一只海龟
ycor
5.0000001
而另一只海龟是
5.0000000
,它们在同一坐标上吗?因此,您应该检查它们的坐标是否在彼此的一定范围内

另外,停止移动的最好方法就是不要移动。因此,这里有一个可能的
go
过程,它可以满足您的要求:

to go
  ask turtles [
    if not any? turtles with [ breed != [ breed ] of myself and abs (ycor - [ ycor ] of myself) < threshold ] [
      move ;; replace with your move procedure or code
    ]
  ]
end
要走了
问海龟[
如果没有呢?拥有[品种!=[品种]和腹肌(ycor-[ycor]的海龟)<阈值][
移动;;替换为移动过程或代码
]
]
结束
在这里,每只海龟都会检查是否有不同品种的海龟
ycor
在它们自己
ycor
阈值范围内。如果没有,它就会移动。否则,它将一事无成


这里最让人困惑的是这些东西,所以我建议阅读文档。

注意,如果海龟从一个补丁中心跳到另一个补丁中心(像跳棋或国际象棋),就不会出现坐标略有差异的问题。哦,我不知道坐标是如何工作的。我的乌龟使用“人”作为形状,大小为1.5。我猜我想考虑的是相同的“Y坐标”。因此,在您的示例中,5.0000000和5.0000001是相同的,我希望我的海龟们检查它们是否都在5Y坐标上,因此向上或向下舍入整数。让它们比较
pycor
,而不是
ycor
。(乌龟可以直接访问它所在补丁的变量,包括
pycor
)尝试将您提供的代码放入我的程序,但根本无法让它工作。如果您不介意的话,我已经在OP中添加了我正在使用它的程序。谢谢