NetLogo - 如何从数组中设置乌龟颜色

时间:2011-12-23 13:31:18

标签: netlogo

如何从阵列中设置乌龟的颜色?

这是我的代码,但不起作用:

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 个答案:

答案 0 :(得分:4)

在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 ]

答案 1 :(得分:3)

接受的答案是正确答案,但是请注意,read-from-string函数会将基本NetLogo颜色名称解释为颜色值:

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

了解的另一个有用的是base-colors内置函数,它将14种基本NetLogo颜色的数组报告为数值,允许您执行以下操作:

ask turtles [ set color one-of base-colors ]

答案 2 :(得分:1)

根据this site

尝试将颜色名称设置为数字值