Parcours
/
Ruby
Ruby
/
Exercices
/
Cinéphile
Cinéphile

Cinéphile

Exercice d'apprentissage

Introduction

L'opérateur ternaire

Une condition ternaire est une manière plus courte d'écrire des instructions if/else simples. Si une instruction if/else ne contient que deux branches, l'une pour le cas où la condition est vraie et l'autre pour le cas où elle est fausse, on peut la réécrire sous la forme d'une condition ternaire.

Les ternaires utilisent une combinaison des symboles ? et : pour découper une condition en deux branches :

condition ? true_branch : false_branch

Le code à gauche du ? est la condition et le code à droite contient les deux branches possibles, séparées par le :. Si la condition est vraie, le code à gauche du : est exécuté. Si la condition est fausse, c'est le code à droite du : qui est exécuté.

Par exemple :

if traffic_light == 'green'
  cross_the_road
else
  wait
end

peut se réécrire ainsi :

traffic_light == 'green' ? cross_the_road : wait

Instructions

Dans cet exercice, tu vas mettre en place les règles du site web d'un cinéma.

1. Vérifie si un spectateur a droit à la réduction seniors

Le cinéma propose une réduction pour les « pensions de vieillesse ». Toute personne de 60 ans ou plus paie 10,00 pour un billet. Toute personne plus jeune paie le tarif plein de 15,00.

Écris la méthode Moviegoer#ticket_price en utilisant une instruction ternaire.

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

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

2. Vérifie si un spectateur est autorisé à voir des films qui font peur

Le cinéma dispose d'un système simplifié de vérification de l'âge. Si tu as 18 ans ou plus, tu peux regarder des films qui font peur. Si tu es plus jeune, tu ne peux pas.

Implémente la méthode Moviegoer#watch_scary_movie?. Elle doit renvoyer si une personne est autorisée à regarder le film ou non.

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

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

3. Vérifie si un spectateur a droit à du pop-corn gratuit

Le cinéma a un programme Movie Club. Les membres reçoivent du pop-corn gratuit lorsqu'ils regardent n'importe quel film.

Implémente la méthode Moviegoer.claim_free_popcorn!. Si une personne est membre du Movie Club, elle doit recevoir son pop-corn gratuit. Dans le cas contraire, la méthode doit lever l'exception UnsupportedOperation définie en haut du code.

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

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

Dans cet exercice, on attend de toi que tu définisses l'exception UnsupportedOperation pour une portée spécifique.

Modifie via GitHub Le lien s'ouvre dans une nouvelle fenêtre ou un nouvel onglet
Ruby Exercism

Prêt à commencer Cinéphile ?

Inscris-toi sur Exercism pour apprendre et maîtriser Ruby avec 21 concepts121 exercices, et un vrai mentorat humain, le tout gratuitement.