Ошибка: это не то, что вы можете использовать установить на Netlogo - PullRequest
1 голос
/ 25 февраля 2020

Я пытаюсь написать кусок кода, который просит некоторых черепах вычислить 2 параметра, сравнить их, а затем, если один из них ниже другого, вычитает характеристику c черепах на 1. Вот код Я написал, но я получаю эту ошибку: «это не то, что вы можете использовать установить на netlo go»

        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]]

Есть ли у вас какие-либо советы? Заранее большое спасибо Сина

1 Ответ

1 голос
/ 25 февраля 2020

Я предполагаю, что строка

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

- это строка, которая генерирует ошибку. NetLo go не позволяет одной черепахе напрямую устанавливать переменные другой черепахи с помощью конструкции of. Например,

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

нарушает это правило. В вашем случае при использовании self, turtle 2 и turtle 1 - это одна и та же черепаха, но NetLo go все равно выдаст эту ошибку. Строка, которую вы хотите, это просто:

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

Когда вы находитесь в пределах ask, под переменной понимается та, которая связана с запрашиваемой черепахой. of self не требуется.

Надеюсь, это поможет, Чарльз

...