使用滑块获取用户输入的海龟颜色



我想根据一个可以在界面中更改的变量来设置海龟的颜色。我正在考虑使用一个值为1-5的滑块,该值将决定将使用多少种颜色来为海龟上色。

例如,如果值是2,那么海龟将被涂上两种颜色。如果我能控制要选择的颜色,我会很感激,但随机的颜色也可以。

我曾经有一个静态的,双色的设置:

set color one-of [ red blue green brown orange ]

就是这么简单。但是对于动态设置,我是这样做的。有没有更有效的方法?

 if groups = 1 [ set color red ]
    if groups = 2 [ set color one-of [ red blue ] ]
    if groups = 3 [ set color one-of [ red blue green ] ]
    if groups = 4 [ set color one-of [ red blue green orange ] ]
    if groups = 5 [ set color one-of [ red blue green orange brown ] ]

您可以使用sublist从所需颜色列表中提取所需颜色的数量:

let colors sublist [ red blue green orange brown ] 0 groups
ask turtles [ set color one-of colors ]

如果你不想总是以相同的顺序得到相同的颜色,你可以使用n-ofbase-colors:

let colors n-of groups base-colors

最新更新