Advertisement
oscartzgz

platzi - Ruby - Ejercicio Televisor

Sep 19th, 2017
191
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 1.89 KB | None | 0 0
  1. class Televisor
  2.   attr_reader :modelo, :tamano
  3.   def initialize(params)
  4.     @modelo = "Televisor #{params[:modelo]}"
  5.     @tamano = "#{params[:tamano]} pulgadas"
  6.     @encendido = false
  7.     @canal = 2
  8.     @volumen = 0
  9.   end
  10.  
  11.   def encender_apagar
  12.     if @encendido
  13.       @encendido = false
  14.       puts 'Televisor APAGADO'
  15.     else
  16.       @encendido = true
  17.       puts "Televisor ENCENDIDO"
  18.     end
  19.   end
  20.  
  21.   def encendido?
  22.     if @encendido
  23.       true
  24.     else
  25.       puts "ZZzzZzzz..."
  26.       false
  27.     end
  28.   end
  29.  
  30.   def cambiar_canal(canal)
  31.     if encendido?
  32.       @canal = canal
  33.       puts "Sintonizando el canal #{@canal}" if encendido?
  34.     end
  35.   end
  36.  
  37.   def cambiar_volumen(action)
  38.     case action
  39.     when 'up'
  40.       @volumen += 1 unless (@volumen + 1) > 100
  41.       puts "Volumen _#{@volumen}_"
  42.     when 'down'
  43.       @volumen -= 1 unless (@volumen - 1) < 0
  44.       puts "Volumen _#{@volumen}_"
  45.     end
  46.   end
  47. end
  48.  
  49. class TelevisorFuturo < Televisor
  50.   def initialize(params)
  51.     super
  52.     @universo = 0
  53.   end
  54.   def make_me_a_sandwich
  55.     if encendido?
  56.       puts "Loading ..."
  57.       sleep(1.5)
  58.       puts "Tu sandwich esta listo!"
  59.     end
  60.   end
  61.  
  62.   def cambiar_canal(*args)
  63.     if encendido?
  64.       @canal = args[0] unless args[0].nil?
  65.       @universo = args[1] unless args[1].nil?
  66.       puts "Sintonizando: canal #{@canal} - universo #{@universo}" if encendido?
  67.     end
  68.   end
  69. end
  70.  
  71.  
  72. tv = Televisor.new(modelo: 'Sony', tamano: '32')
  73. puts tv.modelo
  74. puts tv.tamano
  75. tv.encender_apagar
  76. 8.times { tv.cambiar_volumen('up') }
  77. 10.times { tv.cambiar_volumen('down') }
  78. tv.cambiar_canal(77)
  79.  
  80. tv_futuro = TelevisorFuturo.new(modelo: 'PlaXi', tamano: 50)
  81. puts tv_futuro.modelo
  82. puts tv_futuro.tamano
  83. tv_futuro.make_me_a_sandwich
  84. tv_futuro.encender_apagar
  85. tv_futuro.make_me_a_sandwich
  86. tv_futuro.cambiar_canal(1003, 7)
  87. tv_futuro.cambiar_canal(500)
  88. tv_futuro.encender_apagar
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement