【问题标题】:Why am I getting an error when I disengage world wrap in NetLogo?当我在 NetLogo 中解除世界环绕时,为什么会出现错误?
【发布时间】:2021-03-25 14:27:48
【问题描述】:

我下载了一个工作模型,我正在调整它以符合我的标准。我想禁用世界环绕,因此海龟在移动到初始屏幕时受到限制,但是当我这样做时,我收到一个错误消息,告诉我:OF 预期的输入是海龟代理集或补丁代理集或海龟或补丁,但得到了 NOBODY。

【问题讨论】:

    标签: netlogo


    【解决方案1】:

    欢迎来到 StackOverflow!为了将来参考,您的问题有点不完整,因为其他人很难在没有看到您正在使用的代码的情况下帮助您。尝试包含足够的代码供其他人回答您的问题。我无法直接帮助解决您的问题,但我可以提供一些一般信息。

    在 NetLogo 中,许多语言原语的行为在启用世界环绕时和未启用时都会发生变化。作为使用patch-ahead 的示例,在双向环绕的世界中,此代码将始终成功:

    ; turtles will color themselves the color of the patch 1 unit away
    ask turtles [
      set color ([pcolor] of patch-ahead 1)
    ]
    

    但是如果在一个或两个方向上禁用了环绕,the patch-ahead of a turtle can return nobody 当乌龟前面没有补丁时,因为乌龟在世界的边缘。在这种情况下,您要求 NetLogo 评估 [pcolor] of nobody,但这是不可能的,并且您会收到与您描述的错误类似的错误。

    要解决此问题,您必须查看代码并查看这些错误是在哪里出现的并适当地处理它们。以我为例:

    ask turtles [
      if patch-ahead 1 != nobody [
        set color ([pcolor] of patch-ahead 1)
      ]
    ]
    

    你可以阅读更多关于the world topology of NetLogo models in the docs的信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-19
      • 1970-01-01
      • 2019-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-16
      相关资源
      最近更新 更多