Приведенная выше настройка ничего не даст. Основная проблема может заключаться в том, что вы сравниваете переменную прибыли фирмы со списком ([profit] of firms with [ offshored? = false ]
).Вы не можете сравнивать одно значение со списком значений непосредственно таким образом, поэтому вам придется пойти по-другому.Например, вы можете использовать min
, чтобы получить минимальную величину прибыли для других компаний, представляющих интерес:
breed [ firms firm ]
firms-own [ profit offshored? reshored? ]
to setup
ca
ask patches with [ pxcor < -10 ] [
set pcolor red
]
create-firms 100 [
set color white
set profit random 101
set offshored? one-of [ true false ]
set reshored? false
while [ any? other turtles-here ] [
move-to one-of neighbors with [ pcolor = black ]
]
]
ask firms [
if offshored? and profit < min [ profit ] of firms with [ not offshored? ] [
move-to one-of patches with [ pcolor = red and not any? turtles-here ]
set reshored? true
set color yellow
set size 2
]
]
reset-ticks
end
Кроме того, у вас есть ask one-of turtles
в вашем ask firms
утверждении - я думаю, что вы хотитеопустите это, как это сделано в этом примере, чтобы фирма, выполняющая оценку, была агентом, который перемещается - ask one-of turtles
просто выберет случайную черепаху любой породы.