Netlogo Случайный выбор одной из 3 процедур

Как случайным образом выбрать одну из 3 процедур?

Пожалуйста, смотрите ниже:

to move
   ifelse random-float 100 < 70 
   [move-forward]
   [move-left move-right move-back] ;; To randomly select one of these 3 procedures to execute.
end

Спасибо. Я совершенно не знаком с синтаксисом.


person aHaH    schedule 10.03.2012    source источник


Ответы (2)


Сетевой логотип 6:

run one-of (list [-> move-left]
                 [-> move-right]
                 [-> move-back])

Сетевой логотип 5:

run one-of (list task move-left
                 task move-right
                 task move-back)
person Seth Tisue    schedule 12.03.2012
comment
Поскольку в версии 6.0 netlogoth использование «задач» больше недоступно, есть ли способ сделать это таким же образом, но без задач? - person C. Snoeij; 28.03.2020
comment
Я обновил свой ответ, включив в него версии NetLogo 6 и NetLogo 5. - person Seth Tisue; 29.03.2020

Может быть, не слишком элегантно, но это может сработать:

to move
  ifelse random-float 100 < 70 
  [move-forward]
  [let n random 3
    ifelse n = 0
    [move-left]
    [ifelse n = 1
      [move-right]
      [move-back]]]
end
person oakenshield1    schedule 11.03.2012