NetLogo - Как установить цвет черепахи из массива - PullRequest
1 голос
/ 23 декабря 2011

Как я могу установить цвет черепахи из массива?

Вот мой код, но он не работает:

let colors array:from-list ["red" "yellow" "blue" "pink"]
set index random 3
let c array:item colors index
set color array:item colors index

Что приводит к этой ошибке:

can't set flower variable COLOR to non-number blue error while flower 101 running SET

Ответы [ 3 ]

4 голосов
/ 18 января 2012

В цвете NetLogo имена 14 основных цветов, плюс черный и белый, определены как константы, поэтому кавычки не требуются. Кроме того, поскольку они являются константами, они обрабатываются как буквальные значения, поэтому их можно использовать в нотации в скобках, иначе для создания этого списка вам понадобится репортер (list ...).

Кроме того, использование массива может быть более сложным, чем необходимо.

Вы можете написать:

let colors [ red green blue yellow ]
set index random 3
let c item colors index
set color c

В качестве дополнительного бонуса вы можете использовать один из примитивов для выполнения всего вышеперечисленного:

set color one-of [ red green blue yellow ]
3 голосов
/ 27 сентября 2012

Принятый ответ является правильным, но, кроме того, обратите внимание, что функция read-from-string будет интерпретировать основное имя цвета NetLogo как значение цвета:

observer> show read-from-string "red"
observer: 15

Также полезно знать о встроенной функции base-colors, которая сообщает массив 14 основных цветов NetLogo в виде числовых значений, что позволяет вам выполнять такие действия, как:

ask turtles [ set color one-of base-colors ]
1 голос
/ 23 декабря 2011

попробуйте установить имена цветов в числовые значения в соответствии с этим сайтом

...