Tu travailles pour une entreprise qui crée un jeu de survie fantastique en ligne.
Lorsqu'un joueur termine un niveau, il reçoit des points d'énergie. La quantité d'énergie attribuée dépend des objets magiques que le joueur a trouvés en explorant ce niveau.
Ta tâche consiste à écrire le code qui calcule les points d'énergie attribués aux joueurs lorsqu'ils terminent un niveau.
Les points attribués dépendent de deux choses :
Les points d'énergie sont attribués selon les règles suivantes :
Prenons un exemple :
Le joueur a terminé le niveau 20 et a trouvé deux objets magiques dont les valeurs de base sont 3 et 5.
Pour calculer les points d'énergie gagnés par le joueur, il faut trouver tous les multiples uniques de ces valeurs de base qui sont inférieurs au niveau 20.
{3, 6, 9, 12, 15, 18}
{5, 10, 15}
{3, 5, 6, 9, 10, 12, 15, 18}
3 + 5 + 6 + 9 + 10 + 12 + 15 + 18 = 78
L'astuce de cet exercice, c'est de comprendre comment parcourir un intervalle de nombres et comment vérifier dans une Collection s'il existe des multiples divisibles par un nombre. Essaie d'utiliser le Spotter pour rechercher des classes potentielles et parcourir les catégories de méthodes de ces classes.
Rappelle-toi aussi que l'environnement Pharo est truffé de références croisées. Tu peux faire un clic droit sur n'importe quelle classe ou méthode, puis parcourir les « references » d'une classe (pour voir comment elle pourrait être créée), ainsi que les « senders » d'une méthode (pour voir comment elle pourrait être utilisée).
Inscris-toi sur Exercism pour apprendre et maîtriser Pharo avec 50 exercices, et un vrai mentorat humain, le tout gratuitement.