如何生成六个随机的十六进制颜色并将它们放在Ruby数组中?

时间:2012-05-20 23:05:24

标签: ruby colors hex rmagick

我正在使用RMagick创建一个项目,该项目会根据大小和颜色生成随机横幅广告。

第一步是这样,但它无法正常工作。我正在使用所谓的三元语句来使字符串像“#ffffff,#f0f1cd,#123fff”等。

# Generate sixteen random colors
1.upto(16) { |i|
    (defined? colors) ? colors << ", #%06x" % (rand(0xffffff)) : colors = "#%06x" % (rand(0xffffff))
}
puts colors.split(',')

预期结果不正确。我希望它分成如下数组:     [“#ffffff”,“#f0f1cd”,“#123fff”]

以最优雅的方式。

1 个答案:

答案 0 :(得分:7)

你可以这样做更容易:

colors = 3.times.map{"%06x" % (rand * 0x1000000)}

注意:如果您使用的是Ruby 1.9.3,则可以使用范围。

colors = 3.times.map{"%06x" % rand(0..0xffffff)}