Parcours
/
Gleam
Gleam
/
Exercices
/
Règles de Pac-Man
Règles de Pac-Man

Règles de Pac-Man

Exercice d'apprentissage

Introduction

Booléens

Gleam représente les valeurs vrai et faux avec le type Bool. Il n'existe que deux valeurs : True et False. Ces valeurs peuvent être affectées à une variable :

let true_variable = True
let false_variable = False

Les opérateurs &&, || et ! permettent de manipuler des valeurs booléennes :

True && True  // -> True
True && False // -> False

False || True  // -> True
False || False // -> False

!False // -> True
!True  // -> False

Les opérateurs && et || utilisent l'évaluation en court-circuit, ce qui signifie que l'expression à droite de l'opérateur n'est évaluée que si c'est nécessaire.

Chacun de ces opérateurs a une précédence différente : ! est évalué avant && et ||. On peut utiliser des accolades pour évaluer une partie de l'expression avant les autres :

!True && False   // -> False
!{True && False} // -> True

Instructions

Dans cet exercice, tu dois traduire quelques règles du jeu classique Pac-Man en fonctions Gleam.

Tu as quatre règles à traduire, toutes liées aux états du jeu.

Ne te préoccupe pas de la façon dont les arguments sont obtenus, concentre-toi simplement sur la combinaison des arguments pour renvoyer le résultat attendu.

1. Définis si Pac-Man mange un fantôme

Définis la fonction eat_ghost qui prend deux arguments (si Pac-Man a une super pastille active et si Pac-Man touche un fantôme) et qui renvoie une valeur booléenne indiquant si Pac-Man est capable de manger le fantôme. La fonction doit renvoyer True uniquement si Pac-Man a une super pastille active et touche un fantôme.

eat_ghost(False, True)
// -> False

2. Définis si Pac-Man marque des points

Définis la fonction score qui prend deux arguments (si Pac-Man touche une super pastille et si Pac-Man touche un point) et qui renvoie une valeur booléenne indiquant si Pac-Man a marqué. La fonction doit renvoyer True si Pac-Man touche une super pastille ou un point.

score(True, True)
// -> True

3. Définis si Pac-Man perd

Définis la fonction lose qui prend deux arguments (si Pac-Man a une super pastille active et si Pac-Man touche un fantôme) et qui renvoie une valeur booléenne indiquant si Pac-Man perd. La fonction doit renvoyer True si Pac-Man touche un fantôme et n'a pas de super pastille active.

lose(False, True)
// -> True

4. Définis si Pac-Man gagne

Définis la fonction win qui prend trois arguments (si Pac-Man a mangé tous les points, si Pac-Man a une super pastille active et si Pac-Man touche un fantôme) et qui renvoie une valeur booléenne indiquant si Pac-Man gagne. La fonction doit renvoyer True si Pac-Man a mangé tous les points et n'a pas perdu d'après les arguments définis dans la partie 3.

win(False, True, False)
// -> False
Modifie via GitHub Le lien s'ouvre dans une nouvelle fenêtre ou un nouvel onglet
Gleam Exercism

Prêt à commencer Règles de Pac-Man ?

Inscris-toi sur Exercism pour apprendre et maîtriser Gleam avec 33 concepts122 exercices, et un vrai mentorat humain, le tout gratuitement.