Вы почти наверняка захотите кодовый блок, например:
to go-home
if ticks > 80 and ticks <= 120 [ ask turtles [ facexy 0 35 ] ]
end
, чтобы ask
находился внутри if
(что означает, что if
проверяется только один раз, а не один раз для каждой черепахи).
Однако более общая проблема заключается в том, как вы используете списки.Примитив one-of
случайным образом выберет один из элементов в списке.Таким образом, ваш код может выбрать 720 из mylist и 480 из mylist2.Похоже, вы хотите переключаться каждые 120 ticks
.Если это правильно, то вам вообще не нужны списки, вы можете просто использовать оператор mod
с чем-то вроде:
to go-home
ifelse ticks mod 240 < 120
[ ask turtles [ facexy 0 35 ] ]
[ ask turtles [ facexy 0 0 ] ]
end
Это будет иметь патч для лица 0 35 на 120 тиков (изменениезаголовок каждый tick
, если требуется), затем отметка лица 0 0 для следующих 120 тиков, а затем снова 0 35 и т. д.