2022-2023/1NSI/10_Dictionnaire/scripts/scrabble.py
Bertrand Benjamin 90558ac36b
All checks were successful
continuous-integration/drone/push Build is passing
Feat(NSI): exercices sur les dictionnaires
2023-03-26 16:40:46 +02:00

99 lines
1.8 KiB
Python

valeur_lettres = {
"a": 1,
"e": 1,
"i": 1,
"o": 1,
"n": 1,
"r": 1,
"t": 1,
"l": 1,
"s": 1,
"u": 1,
"d": 2,
"g": 2,
"b": 3,
"c": 3,
"m": 3,
"p": 3,
"f": 4,
"h": 4,
"v": 4,
"w": 4,
"y": 4,
"k": 5,
"j": 8,
"x": 8,
"q": 10,
"z": 10,
}
## Signature d'un mot
def signature(mot:str) -> dict:
"""Fonction qui compte le nombre de fois que chaque lettre apparait dans le mot
:param mot: le mot à étudier
:return: dictionnaire avec en clé les lettres et en valeur le nombre de fois qu'elles apparaissent
"""
# à compléter
pass
# Ajouter deux tests en plus
assert signature("coucou") == {'c': 2, 'o': 2, 'u': 2}
assert signature("") == {}
## Score d'un mot
def score(mot: str, valeurs: dict) -> int:
""" Calcul le score que fait un mot
:param mot: le mot à étudier
:param valeurs: dictionnaire avec les valeurs de chaque lettre
:return: le score du mot
"""
# à compléter
pass
# Ajouter deux tests en plus
assert score("coucou", valeur_lettres) == 10
assert score("", valeur_lettres) == 0
## Meilleur score
def meilleur_score(mots_possibles:list, valeurs:dict) -> str:
""" Renvoie le mot qui fait le plus de points dans la liste des mots possibles"""
# à compléter
pass
assert meilleur_score(["coucou", "hop"], valeur_lettres) == "coucou"
autres_valeurs_lettres = {
"a": 1,
"e": 1,
"i": 1,
"o": 1,
"n": 1,
"r": 1,
"t": 1,
"l": 1,
"s": 1,
"u": 1,
"d": 2,
"g": 2,
"b": 3,
"c": 3,
"m": 3,
"p": 3,
"f": 4,
"h": 100,
"v": 4,
"w": 4,
"y": 4,
"k": 5,
"j": 8,
"x": 8,
"q": 10,
"z": 10,
}
assert meilleur_score(["coucou", "hop"], autres_valeurs_lettres) == "hop"