Au Scrabble, chaque lettre possède une valeur et le score d'un mot est la somme des valeurs des lettres qui le compose. Ce score peut être modifié par des bonus liés au placement du mot sur le plateau de jeu. Les bonus possibles sont :
« lettre compte double » qui multiplie par 2 la valeur de la lettre positionnée sur cet emplacement ;
« lettre compte triple » qui multiplie par 3 la valeur de la lettre positionnée sur cet emplacement ;
« mot compte double » qui multiplie par 2 la valeur totale du mot (après application des éventuels bonus de lettre) ;
« mot compte triple » qui multiplie par 3 la valeur totale du mot (après application des éventuels bonus de lettre).
Une case du plateau ne peut contenir qu'un seul bonus. Il est possible que le score d'un mot soit modifié par plusieurs bonus « mot ». Dans ce cas, les bonus sont tous appliqués.
Exemple
On place le mot :
sur les cases suivantes :
Sa valeur est : \(\left(2\times2 + 1 + 1 + 1 + 4 + 1 \right) \times 2 = 24\)
On modélise les propriétés des cases sur lesquelles sont posées les lettres par les symboles suivants :
"+" indique un bonus « lettre compte double » ;
"*" indique un bonus « lettre compte triple » ;
"#" indique un bonus « mot compte double » ;
"@" indique un bonus « mot compte triple » ;
"-" indique une case sans bonus.
Les cases sur lesquelles sont posées les lettres d'un mot sont modélisées par une chaine de caractères que l'on appellera cases. Dans l'exemple précédent, cases est la chaine "+---#-".
Compléter la définition de la fonction calcul_score qui prend en paramètres deux chaines de caractères :
mot dont on veut calculer le score ;
cases représentant l'emplacement du mot.
Cette fonction calcule le score du mot en tenant compte des éventuels bonus des cases.
On fournit trois dictionnaires VALEURS, BONUS_LETTRE et BONUS_MOT contentant les valeurs des lettres
au Scrabble et les coefficients multiplicateurs des différents bonus.
###(Dés-)Active le code après la ligne # Tests (insensible à la casse) (Ctrl+I)
Entrer ou sortir du mode "deux colonnes" (Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran" (Esc)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
# Tests(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)