2011-12-23 38 views
1

如何从数组中设置龟的颜色?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 

回答

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

尝试设置你的颜色名称到数值,根据this site

+0

这是确定anymore.Thanks – Ecrin 2011-12-23 16:01:21

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 ] 
+0

哦,我不知道“基色”......我希望它在NetLogo 5中是新的,而不是我多年来一直想念的东西!谢谢! – TurtleZero 2013-02-04 20:41:57

相关问题