Короче говоря, [vacio]
не равно "vacio"
, потому что [vacio]
- это список.Эта проблема заключается в том, что вы сравниваете список с одним значением.Когда вы используете of
с набором агентов, как вы делали с [estado] of (transmilenios with [xcor = 0.5])
, NetLogo возвращает список всех значений.Даже если у вас есть только один агент в наборе агентов, он вернет список.Как это исправить, может зависеть от того, что вы моделируете.Самым простым решением может быть использование one-of
в качестве обходного пути:
[estado] of (one-of transmilenios with [xcor = 0.5]) = "vacio"
Однако, если вы пытаетесь оценить несколько transmilenios
с разными значениями для estado
тогда это не будет работать, так как вы получите доступ только к значению estado
для одной черепахи за раз.
В качестве рабочего примера рассмотрите следующую настройку:
turtles-own [ estado ]
to setup
ca
crt 5 [ set estado one-of [ "vacio" "lleno" ] ]
reset-ticks
end
Если я print [estado] of turtles
, я получаю вывод как: [lleno vacio lleno lleno vacio]
.Итак, если я сравниваю [lleno vacio lleno lleno vacio]
с vacio
, тогда ответ явно ложный.
Если вместо этого print [estado] of one-of turtles
я получу либо lleno
, либо vacio
в качестве выхода, то при оценке print [estado] of one-of turtles = "vacio"
вернётся либо true, либо false.
Надеюсь, это поможет!