テーマは、「フェラーリは車高を40cmリフトアップしたら速度が20%遅くなる」ということをコードにしたいです。
前提条件として「リフトダウンはリフトアップしてからじゃないとできない」ということを ferrari.rb
に定義しました。(リフトアップ/ダウンはフェラーリだけしかできないので)
定義の仕方がいまいち弱いというか、これだと定義しなくても puts
の中の計算式でなんとかなるくね?
と思ってしまい、なんか違うなぁと。
直したい箇所は ferrari.rb
のdef lift_down
の「時速」と「車高」を def lift_up
で計算された数値から計算されるようなコードにしたいのですがどうすればいいでしょうか?
lift_up
で計算した数値を基準に元に戻そうと#{car.lift_up.speed /0.8}km
とかにしたらエラーが出るし、どうすればいいか悩んでいまして、アドバイスお願いいたします。
Ruby
1# main.rb 2require_relative 'car' 3require_relative 'ferrari' 4require_relative 'honda' 5require_relative 'nissan' 6 7honda = Honda.new 8honda.output_information(honda) 9 10nissan = Nissan.new 11nissan.output_information(nissan) 12 13ferrari = Ferrari.new 14ferrari.output_information(ferrari) 15 16ferrari.lift_up(ferrari) 17ferrari.lift_down(ferrari)
Ruby
1#car.rb (parent class) 2class Car 3 attr_accessor :type, :capasity, :price, :speed, :height 4 5 def equipment 6 %w[アクセル ブレーキ] 7 end 8 9 def output_information(car) 10 puts '---------------------------------' 11 puts "車種: #{car.type}" 12 puts "定員: #{car.capasity}" 13 puts "価格: #{car.price}円" 14 puts "時速: #{car.speed}km" 15 puts "車高: #{car.height}cm" 16 puts "装備: #{car.equipment.join(', ')}" 17 end 18end
Ruby
1# ferrari.rb 2class Ferrari < Car 3 def initialize 4 @type = 'フェラーリ' 5 @capasity = 2 6 @price = 2_000_000_0 7 @speed = 100 8 @height = 100 9 end 10 11 def lift_up(car) 12 @is_lift = true 13 puts '----フェラーリ(リフトアップ)----' 14 puts "車種: #{car.type}" 15 puts "定員: #{car.capasity}" 16 puts "価格: #{car.price}円" 17 puts "時速: #{car.speed* 0.8}km" 18 puts "車高: #{car.height+ 40}cm" 19 puts "装備: #{car.equipment.join(', ')}" 20 end 21 22 def lift_down(car) 23 return unless @is_lift 24 @is_lift = false 25 puts '----フェラーリ(リフトダウン)----' 26 puts "車種: #{car.type}" 27 puts "定員: #{car.capasity}" 28 puts "価格: #{car.price}円" 29 puts "時速: #{(car.speed* 0.8)/ 0.8}km" #ここをリフトアップした数値を基準に元の数値に戻したい 30 puts "車高: #{(car.height+ 40) - 40}cm" #ここをリフトアップした数値を基準に元の数値に戻したい 31 puts "装備: #{car.equipment.join(', ')}" 32 end 33end
Ruby
1# honda.rb 2class Honda < Car 3 def initialize 4 @type = 'ホンダ' 5 @capasity = 8 6 @price = 100_000_0 7 @speed = 10 8 @height = 100 9 end 10end
Ruby
1# nissan.rb 2class Nissan < Car 3 def initialize 4 @type = 'ニッサン' 5 @capasity = 5 6 @price = 50_000_0 7 @speed = 10 8 @height = 100 9 end 10end
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/07/30 00:51
2019/07/31 02:15
2019/07/31 02:23
2019/07/31 02:35
2019/07/31 02:43