Rutas
/
Ruby
Ruby
/
Ejercicios
/
Espectador de cine
Espectador de cine

Espectador de cine

Ejercicio de aprendizaje

Introducción

El operador ternario

Un condicional ternario es una forma más corta de escribir instrucciones if/else sencillas. Si una instrucción if/else contiene solo dos ramas, una para cuando la condición es verdadera y otra para cuando es falsa, se puede reescribir como un condicional ternario.

Los ternarios usan una combinación de los símbolos ? y : para dividir un condicional:

condition ? true_branch : false_branch

El código a la izquierda del ? es la condición y el código a la derecha contiene las dos ramas posibles, separadas por el :. Si la condición es verdadera, se ejecuta el código a la izquierda del :. Si la condición es falsa, se ejecuta el código a la derecha del :.

Por ejemplo:

if traffic_light == 'green'
  cross_the_road
else
  wait
end

se puede reescribir como:

traffic_light == 'green' ? cross_the_road : wait

Instrucciones

En este ejercicio vas a crear las reglas para la web de un cine.

1. Comprueba si un espectador tiene derecho al descuento para jubilados

El cine ofrece un descuento para los «jubilados». Cualquier persona de 60 años o más paga 10,00 por la entrada. Las personas más jóvenes pagan los 15,00 completos.

Escribe el método Moviegoer#ticket_price usando el operador ternario.

Moviegoer.new(21).ticket_price
#=> 15

Moviegoer.new(65).ticket_price
#=> 10

2. Comprueba si un espectador puede ver películas de miedo

El cine tiene un sistema simplificado de verificación de edad. Si tienes 18 años o más, puedes ver películas de miedo. Si eres más joven, no puedes.

Implementa el método Moviegoer#watch_scary_movie?. Debe devolver si alguien puede ver la película o no.

Moviegoer.new(21).watch_scary_movie?
#=> true

Moviegoer.new(17).watch_scary_movie?
#=> false

3. Comprueba si un espectador tiene derecho a palomitas gratis

El cine tiene un programa llamado Movie Club. Los socios reciben palomitas gratis cuando ven cualquier película.

Implementa el método Moviegoer.claim_free_popcorn!. Si quien ve la película es socio del club, debe recibir sus palomitas gratis. Si no lo es, el método debe lanzar la excepción UnsupportedOperation definida al principio del código.

Moviegoer.new(21, member: true).claim_free_popcorn!
#=> 🍿

Moviegoer.new(17, member: false).claim_free_popcorn!
#=> Exception was raised! (NotMovieClubMemberError)
Note

En este ejercicio, se espera que definas la excepción UnsupportedOperation para un scope concreto.

Editar en GitHub El enlace se abre en una ventana o pestaña nueva
Ruby Exercism

¿Listo para empezar Espectador de cine?

Regístrate en Exercism para aprender y dominar Ruby con 21 conceptos121 ejercicios y mentoría humana real, todo gratis.