Когда создается дополнительная черепаха, значение переменной собственной черепахи увеличивается, когда она не должна - PullRequest
0 голосов
/ 13 декабря 2018

У меня есть ряд глобальных переменных, в которых установлены значения, и количество переменных, принадлежащих черепахе, в которых задано начальное значение, но они меняются соответствующей глобальной переменной при запуске модели.

Например,:

globals [dis-id]

turtles-own [identity]

to determine-parameters
  set dis-id -1
  ask turtles [
  set identity 0
end

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

Так, скажем, действие было успешным, идентичность должна измениться с 0 на -1.Если он снова будет успешным, он переместится с -1 на -2 и т. Д. И наоборот при сбое с 0 на 1, 1 на 2 и т. Д.

Моя проблема заключается в том, что для каждой черепахи, добавленной вВ модели (либо созданной из наблюдателя при запуске или процедуре настройки) эта величина изменения увеличивается.

1 черепаха от 0 до 1, от 1 до 2, от 2 до 3 (правильно + 1)

2 черепахи от 0 до 2, от 2 до 4, от 4 до 6 (неверно + 2)

3 черепахи от 0 до 3, от 3 до 6, от 6 до 9 (неверно + 3) и т. Д.

Если глобальная переменная -6 вместо 1, т. Е.

globals [dis-id]

turtle-own [identity]

to determine-parameters
  set dis-id -6
  ask turtles [
  set identity 0
end

То же самое происходит

1 черепаха от 0 до 6, от 6 до 12, от 12 до 18 (правильно + 6)

2 черепахи 0–12, 12–24, 24–36 (неверно + 12)

3 черепах 0–18, 18–36, 36–54 (неверно + 18) и т. Д..

Процедура / расчет для определения личности:

to succeed
  ask turtles [
    if outcome > expectation [
      set identity (identity - dis-id)]
   ]
 end

to fail
  if outcome < expectation [
    ask turtles [
      set identity (identity - dis-id)]
    ]
end

Эта проблема является единой для каждой переменной, относящейся к черепахе, рассчитанной одинаково.

Я предпринял много исправленийно безрезультатно.Любая помощь с этим будет высоко ценится!Если для решения проблемы необходимы какие-либо дальнейшие объяснения или код, пожалуйста, дайте мне знать, так как я не уверен, сколько или мало кода мне следует разместить здесь.Кстати, фактический код довольно длинный.

ОБНОВЛЕНИЕ бит кода, в котором возникла проблема, был

to dothething
  ask turtles [
    if X >= Y [
        succeed
        fail]
   ]

Спасибо JenB за то, что указал на это!

...