Variables 向另一只海龟询问它的变量

Variables 向另一只海龟询问它的变量,variables,netlogo,agents,Variables,Netlogo,Agents,我是Netlogo的新手,已经被彻底抛弃了。每只海龟都有一个可变群体,这个群体是一个介于1-9之间的数字。我想让一只乌龟面对它最近的邻居,它的群体数量和它一样。然后它移动(该位工作正常)。 目前我有 let newTurtle min-one-of other turtles [10] let variableA [ask newTurtle [colony]] ifelse colony = variableA newTurtle [face newTurtle] [rt random 360

我是Netlogo的新手,已经被彻底抛弃了。每只海龟都有一个可变群体,这个群体是一个介于1-9之间的数字。我想让一只乌龟面对它最近的邻居,它的群体数量和它一样。然后它移动(该位工作正常)。 目前我有

let newTurtle min-one-of other turtles [10]
let variableA [ask newTurtle [colony]]
ifelse colony = variableA newTurtle [face newTurtle] [rt random 360]
move-forward
这样做可以让所有海龟移动到一个中心位置:

let newTurtle min-one-of other turtles [10]
face newTurtle
move-forward
我试着让一只乌龟向它的邻居要它的栖息地,如果有同样的移动方向,否则就随机移动。“预期的文字值”是当前与第二行相关的错误。
我知道这不是我想要的,但我不能让它工作。在此或我的主要问题上的任何帮助都将不胜感激!!谢谢

您的主要问题可能源于您在第一块中使用了
minone of
。请查看并注意,它需要一个报告器作为其参数之一,因此“[10]”不起作用。此外,
minone/of
实际上要求报告器的最小值。所以,我认为你需要用不同的方式来处理这个问题。您可以将其分解为以下步骤。首先,让代理海龟识别与它属于同一群体的海龟:

ask turtles [
    let my_colony other turtles with [ colony =  [colony] of myself ]
这将使代理海龟创建一个名为“my_colony”的临时变量,该变量由世界上与代理海龟属于同一个群体的所有海龟组成。然后,您希望代理海龟选择该组中最接近的成员。在同一代码块中:

让target最小化我的一个殖民地[距离我自己]

这里,的
min-on的代理集是“my_-colony”,报告者是“[距离我自己]”,它返回“my_-colony”中距离最小的海龟。接下来,检查以确保目标存在;否则,如果在一个特定的群体中只有一只海龟,您将得到一个错误。在同一代码块中:

if target != nobody [
      face target
      fd 1
    ]

希望这能让你开始,如果有什么需要澄清的,请告诉我。

太棒了!这是有道理的,我要试一试。再次感谢