Цикл создания на основе пользовательского ввода - PullRequest
0 голосов
/ 12 декабря 2018

Я создаю алгоритм сортировки чашек по длине их радиусов.Ввод будет

2  
red 10       
green 7

, а вывод будет

green
red

Мой подход к этому состоит в том, чтобы увидеть, как первый вход 2, мне нужно создать 2 чашки, которые имеют цвет и радиусатрибутов.Как видно здесь:

class Cup
    attr_accessor :colour, :radius

    def initialize(colour, radius)
        @colour = ""
        @radius = 0
    end

    def number_of_cups
        puts "How many cups are there?".chomp
        gets.times do 
            Cup.new("", 0)
        end
    end
end

Я получаю ошибку undefined method при попытке доступа к Cup.number_of_cups.Мой вопрос, например, если бы я набрал 3, тогда у меня было бы 3 новые объекты чашки?

1 Ответ

0 голосов
/ 12 декабря 2018

Вам нужно очистить basic с помощью ruby ​​

class Cup
    attr_accessor :colour, :radius

    def initialize(colour='No Colour', radius=0)
        @colour = colour
        @radius = radius
    end
end

puts "How many cups are there?"
cups = []
gets.to_i.times do |n| 
  puts "Enter Cup-#{n+1} colour & radius:"
  c = gets.chomp
  r = gets.to_i
  cups << Cup.new(c, r)
end

sorted_cups = cups.sort_by { |x| x.radius }

Далее вы можете отобразить sorted_cups

...