У СТУДЕНТОВ породы не МОЖЕТ СОБЛЮДАТЬ?: Insight
Когда появляется ошибка владения, обычно проблема заключается в том, что черепаха или, в данном случае, студент, ссылаются на переменную, которая не принадлежит их породе.Ниже приведен пример того, как я представляю, что модель была инициализирована для вашего кода, а также пример прохождения и неудачи.
breed [ students student]
breed [ teachers teacher]
students-own [ gain comply?]
teachers-own [ caught? ]
... ; initialize
to go
ask students [ set gain 3 ] ; this passes
ask students [ set caught? 3 ] ; this fails
end
Важность контекста
Скорее всего, ваша проблема связана сдобавление конфликтующих переменных в процедуру для студентов.(Пример ниже)
to listen-in-class ; student procedure
if comply? = 0 [ set gain 7 ]
; the comply? variable assumes a student is calling the procedure
if gain = 3 [ set gain 4 ]
; The gain variable assumes a student is calling the procedure
if caught? = 0 [ set gain 2 ]
; The caught? variable assumes a teacher is calling the procedure
end
Поскольку процедуры могут вызывать другие процедуры, каждая процедура предполагает свое окружение (контекст) из переменных / процедур.
to starting-class ; should be a student procedure
ask student [ listen-in-class ]
; "ask student" assumes listen-in-class only takes global or student only variables
end
Скорее всего, это может бытьнеправильный набор переменных для процедуры был добавлен.Просит, как правило, ограничивать объем переменных в зависимости от породы.