【发布时间】:2014-03-05 19:41:15
【问题描述】:
所以我正在编写一个简单的程序,它根据从单独的数组中随机选择动词、名词、介词和冠词来生成 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
我知道这不是我想要的正确语法,但我似乎无法弄清楚。任何和所有的帮助将不胜感激!
【问题讨论】:
-
"\s"是什么意思?该元字符用于扫描正则表达式中的空白。您可能只想要一个空格" "。在您的20.times循环中,您需要在每次循环中更改您的变量(例如、randarticle、randnoun等)。否则,它们每次都始终相同。 -
我们无法判断
randarticle等是在循环外设置的变量,还是函数调用。如果是前者,则将它们设置在 inside 循环中。 -
显示更多代码。
randarticle是如何定义或设置的(无需对所有这些重复 - 我猜它们看起来都非常相似)?