>VerseTrainer

12. Poids total du butin

difficile
bouclesmapséchecfondamentaux

Ton inventaire a une limite de poids, et il faut vérifier que le butin ramassé pendant une run ne la dépasse pas. Tu as le nom de chaque objet ramassé (dans l'ordre du pillage) et une table de poids par objet — mais certains objets ramassés en jeu (butin d'événement spécial, objets de quête) n'apparaissent pas dans cette table : traite-les comme s'ils ne pesaient rien plutôt que de faire planter le calcul.

Écris une fonction TotalLootWeight qui prend un tableau de noms d'objets ([]string) et une map de poids par nom ([string]float), et renvoie le poids total du butin.

Exemple

TotalLootWeight(array{"Sword", "Shield", "Ghost"}, map{"Sword" => 3.5, "Shield" => 6.0}) renvoie 9.5 ("Ghost" n'est pas dans la table de poids : on l'ignore, on ne plante pas).

Cet exercice combine tout ce que tu as vu jusqu'ici dans la banque : une boucle for sur un tableau, un accès de map faillible sans else (un if peut très bien n'avoir aucune branche else — dans ce cas, s'il échoue, on passe simplement à la suite sans rien faire), et l'accumulation par var/set.

Indices

Chargement de l'éditeur…