exercise done

This commit is contained in:
julien committed 2026-10-14 11:11:51 +02:00
1 parent a48caaaece
commit 0980afcc33
1 file changed
+61
View File
@@ -0,0 +1,61 @@
# Défi : score d'une main
#
# Écris la méthode `hand_score(cards)`.
#
# Chaque carte est représentée par un hash :
#
# { value: "ace", suit: "hearts" }
#
# Valeurs :
# - 7 à 10 valent leur valeur numérique ;
# - jack vaut 11 ;
# - queen vaut 12 ;
# - king vaut 13 ;
# - ace vaut 14.
#
# La méthode doit retourner la somme des valeurs de toutes les cartes.
#
# Contraintes :
# - ne modifie pas le tableau d'origine ;
# - évite une longue suite de `if` ;
# - essaie de garder la méthode lisible.
cards = [
{ value: "7", suit: "clubs" },
{ value: "king", suit: "hearts" },
{ value: "ace", suit: "spades" },
# { value: "blork", suit: "club"}
]
def hand_score(cards)
score = 0
cards.each do |card|
value = Integer(card[:value], exception: false)
if value
score += value
else
case card[:value]
when "jack"
score += 11
when "queen"
score += 12
when "king"
score += 13
when "ace"
score += 14
else
# raise lève une exception et interrompt l'exécution normale du programme.
raise ArgumentError, "Valeur de carte inconnue : #{card[:value]}"
end
end
end
score
end
# Résultat attendu :
#
# hand_score(cards)
# => 34
puts hand_score(cards)