Ruby循环随机输出

时间:2014-03-05 19:41:16

标签: ruby arrays loops random

所以我正在编写一个简单的程序,根据从单独的数组中随机选择动词,名词,介词和文章,生成20个句子。基本上我有4个单独的阵列,每个阵列有5个单词,每个单词与各自的词性有关。

我有一个循环设置运行20次,从每个数组中随机显示一个包含一两个字的句子。我目前的问题是该程序只是生成20个相同句子的实例,而不是20个不同的随机句子。我的循环语句目前看起来像这样:

20.times do
puts article[randarticle].capitalize + "\s" + noun[randnoun] + "\s" + verb[randverb
] + "\s" + prep[randprep] + "\s" + article[randarticle2] + "\s" + noun[randnoun2] 
+ "."
end

我知道这不是我想要的正确语法,但我似乎无法弄明白。任何和所有的帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

假设你有数组中的所有文章,动词等,它就像:

20.times do
  puts [articles, nouns, verbs, preps, articles, nouns].map(&:sample).join(' ').capitalize + '.' 
end