Взгляните на это:
Как добавить исходный код facebook с открытым исходным кодом для прямого проекта
Я также обнаружил, что флаг -lc ++ на самом деле вызвала ошибку компоновщика. Я выполнил инструкции в этой ссылке и удалил флаг, и все сработало!
Я думаю, что может быть не хватает какого-то кода, поэтому я не могу подтвердить, но, похоже, вы не установили 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
!