Я думаю, что может быть не хватает какого-то кода, поэтому я не могу подтвердить, но похоже, что вы, возможно, не установили BALL-OWNER
как черепаху или патч, а вместо этого присвоили значение непосредственно этой переменной.of
запрашивает переменную у агента (или список переменных из набора агентов), поэтому, если для BALL-OWNER
установлено значение, NetLogo запутывается.Однако если вы назначаете агента для BALL-OWNER
, ваш подход должен работать нормально.Например, попробуйте выполнить код ниже:
to setup
ca
crt 10 [
setxy random-xcor random-ycor
set color one-of [ red blue ]
]
reset-ticks
end
to go
let ball-owner one-of turtles
ifelse [color] of ball-owner = red [
print "red team has possession"
] [
print "blue team has possession"
]
end
Редактировать: Вы можете определенно использовать global
, чтобы выбрать цвет, как вы делали во втором блоке кода - я простохотел бы отметить, что of
специально привязан к agents
.Если вы хотите сохранить цвет в переменной global
для сравнения, это возможно, просто сравнение проще, чем использование of
:
globals [ initial-possession ]
to setup
ca
crt 3
set-initial-possession
reset-ticks
end
to go
ask turtles [
decision
]
end
to set-initial-possession
set initial-possession ifelse-value ( random 2 = 1 ) [black] [white]
end
to decision
ifelse initial-possession = black [
print "I see that black has possession"
] [
print "I see that white has possession"
]
end
Я не уверен, поможет ли это,это может зависеть от вашей цели сохранения цвета в global
во-первых!