レースをして順位を車体の名前で表記させたいです。
下記スクショのようにmain.rb
で順位が数字が「1,5,10」(レースにかかった時間)で表示されるのですが
車体名で「フェラーリ、日産、ホンダ」と表示させたいのですが array
の中を変える必要があるでしょうか?
それとも違う方法でしょうか?
アドバイスよろしくお願いいたします。
main.rb
1# main.rb 2require_relative 'car' 3require_relative 'ferrari' 4require_relative 'honda' 5require_relative 'nissan' 6 7puts '-----ホンダ----' 8honda = Honda.new 9honda.output_information(honda) 10 11puts '-----ニッサン----' 12nissan = Nissan.new 13nissan.output_information(nissan) 14 15puts '-----フェラーリ----' 16ferrari = Ferrari.new 17ferrari.output_information(ferrari) 18 19puts "走行時間(ホンダ):#{honda.time}秒" # =>10 20puts "走行時間(日産):#{nissan.time}秒" # => 5 21puts "走行時間(フェラーリ):#{ferrari.time}秒" # => 1 22 23puts '-----順位-------' 24arr = [honda.time,nissan.time,ferrari.time] 25 26puts arr.sort! 27 28# => 1, 5, 10 の順番に表示される。これをフェラーリ、日産、ホンダの順に表示させたい。 29
Ruby
1class Car 2 attr_accessor :type, :capacity, :price, :speed, :height, :passenger, :distance 3 4 def equipment 5 %w[アクセル ブレーキ] 6 end 7 8 def output_information(car) 9 puts "車種: #{car.type}" 10 puts "定員: #{car.capacity}" 11 puts "価格: #{car.price}万円" 12 puts "時速: #{car.speed}km" 13 puts "車高: #{car.height}cm" 14 puts "装備: #{car.equipment.join(', ')}" 15 end 16 17 def time 18 self.distance = 100 19 self.distance /= @speed 20 end 21 22end 23
Ruby
1# ferrari.rb 2class Ferrari < Car 3 def initialize 4 @type = 'フェラーリ' 5 @capacity = 2 6 @price = 2_000 7 @speed = 100 8 @height = 100 9 @passenger = 1 10 end 11end 12 13# honda.rb 14class Honda < Car 15 def initialize 16 @type = 'ホンダ' 17 @capacity = 8 18 @price = 100 19 @speed = 10 20 @height = 100 21 @passenger = 1 22 end 23end 24 25# nissan.rb 26class Nissan < Car 27 def initialize 28 @type = 'ニッサン' 29 @capacity = 5 30 @price = 50 31 @speed = 20 32 @height = 100 33 @passenger = 1 34 end 35end
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/08/01 11:54