如何从阵列中设置乌龟的颜色?
这是我的代码,但不起作用:
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
答案 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)