【问题标题】:Netlogo: How can I ask one of the turtles in multiple patches?Netlogo:如何在多个补丁中询问其中一只海龟?
【发布时间】:2019-10-13 21:02:37
【问题描述】:

如何在多个补丁中询问其中一只海龟? 我想在指定的补丁中选择一只海龟。 (或者我想在指定的单元格范围内询问一只乌龟) 例如,我想使用以下语法:但它不起作用。

ask turtles-on patch (1, 0) or (2, 0) or (3, 0)
move-to patch max-pxcor 1

ask turtles with [(50 0) < max-pxcor]
move-to patch max-pxcor 1

【问题讨论】:

    标签: netlogo


    【解决方案1】:

    您的第一个问题是您识别补丁的方式。例如,“patch (0, 1)”的正确形式是patch 0 1 - 没有括号也没有逗号。您在代码的 move-to 位中正确使用了此语法。

    要使第一个版本工作,您需要创建一个补丁集,然后从中选择:

    ask turtles-on (patch-set patch 1 0 patch 2 0 patch 3 0)
    [ move-to patch max-pxcor 1
    ]
    

    我不太确定您在第二个版本中的逻辑是什么,因为您正在将一个数字与另一个数字进行比较(某种程度)。即使你的语法是正确的,它对所有海龟都是正确的,或者对所有海龟都是错误的。根据您的第一个示例,我怀疑您希望海龟查看自己的补丁,如果 pxcor

    ask turtles with [pxcor < 50 and pycor = 0]
        [ move-to patch max-pxcor 1
        ]
    

    如果您希望海龟在行中具有所有补丁(不仅仅是最多 50 个补丁),那么您可以这样做:

    ask turtles with [pycor = 0]
        [ move-to patch max-pxcor 1
        ]
    

    请注意,第二个和第三个示例使用海龟自动访问它所在的补丁所拥有的变量这一事实。

    请注意,如果您只想要其中一只海龟(如您在文本中所说,而不是在示例代码中所说),那么您需要 ask one-of turtles 而不是 ask turtles

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-10
      • 1970-01-01
      • 2014-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多