首页 > 解决方案 > 错误:这不是您可以在 netlogo 上使用的设置

问题描述

我正在尝试编写一段代码,它要求一些海龟计算 2 个参数,比较它们,然后如果一个低于另一个,则将海龟的特征减去 1。这是我写的代码,但我收到了这个错误:“这不是您可以在 netlogo 上使用的设置”

        set monthly-electricity-consumption random-float((monthly-electricity-demand * 1.2) - (monthly-electricity-demand * 0.8)) + (monthly-electricity-demand *
0.8)
   ask turtles with [shape = "triangle"] [
      if monthly-electricity-consumption > monthly-electricity-demand [
        set [company-loyalty-level] of self company-loyalty-level - 1]]

你有什么建议吗?

标签: netlogo

解决方案


我假设这条线

set [company-loyalty-level] of self company-loyalty-level - 1]]

是产生错误的行。NetLogo 不允许一只乌龟通过of构造直接设置另一只乌龟的变量。例如,

ask turtle 1 [set [company-loyalty-level] of turtle 2 (company-loyalty-level - 1)]

打破了这个规则。在您的情况下,使用self,turtle 2turtle 1是同一只乌龟,但 NetLogo 仍会抛出该错误。你想要的线条很简单,

set company-loyalty-level company-loyalty-level - 1]]

一旦你在一个ask中,这个变量就被理解为与被询问的海龟相关联的那个。of self没有必要。


推荐阅读