2017-01-15 2 views
1
def pass_growing_season 
self.age += 1 
if self.age >= 6 
    harvested_oranges << Orange.new #NEED 100 - 300 !!! 
end 
if self.height < 25 
    self.height += 2.5 
end 
end 

Я пытаюсь инициализировать класс Orange, определенный в другом файле. Прямо сейчас у меня есть один новый объект, который перетаскивается в пустой массив. Я хочу, чтобы создать случайное число их между 100 и 300. До сих пор я пыталсясоздать объект случайное число раз ruby ​​

harvested_oranges = Orange.new(rand(100.300)) 

, но я получаю сообщение об ошибке сказав мне Orange.new принимает аргумент и не должен ... должен не будет правильным планом ... любая помощь будет замечательной!

+0

этом аргумент для [Kernel # рандов] (http://ruby-doc.org/core-2.3.0/Kernel.html#method-i-rand) предназначен для диапазона: 'rand (100..300) # => 156'. Диапазоны, экземпляры класса [Диапазон] (http://ruby-doc.org/core-2.3.0/Range.html) определяются двумя точками (включая конечное значение) или тремя точками (исключая конечное значение) , –

ответ

3

Как насчет:

harvested_oranges = Array.new(rand(100..300)) { Orange.new }

+0

удивительный. Благодарю. вот что я искал. благодаря –

0

Необходимо сначала создать случайное число и сохранить его в переменной. Затем используйте эту переменную в цикле for, где вы продолжаете делать harvested_oranges << Orange.new вещь каждый раз, когда цикл работает.

Смежные вопросы