Scrabble is een bordspel voor twee tot vier spelers, waarbij woorden op een spelbord moeten gelegd worden aan de hand van een reeks willekeurige letters. Hierbij gaan geluk en vernuft hand in hand, omdat de letters willekeurig gepakt worden en het de kunst is hiermee een zo hoog mogelijke score te behalen.
Aan elke letter van het alfabet wordt een vaste score toegekend. De score van een woord dat op het spelbord gelegd wordt, is dan eenvoudigweg de som van de scores van de individuele letters waaruit het woord bestaat.
Als we bijvoorbeeld elke letter van het woord spectromicroscope vervangen door de corresponderende score, dan krijgen we de cijferreeks 13131113131113131. Merk op dat we terug dezelfde cijferreeks krijgen als we de reeks van rechts naar links lezen. Daarom noemen we het woord spectromicroscope een palindroom in Scrabble.
Als we de scores van de individuele letters van het woord spectromicroscope bij elkaar optellen dan levert dit woord 29 punten op op het Scrabblebord.
Bij het aanleggen van een woord op het Scrabblebord kan het gebeuren dat de score van een individuele letter moet vermenigvuldigd worden met een factor $$n \in \{2, 3\}$$. Voor langere woorden is het zelfs mogelijk dat de score van meer dan één letter moet vermenigvuldigd worden, waarbij de vermenigvuldigingsfactoren niet noodzakelijk gelijk moeten zijn. Dit wordt in Scrabblenotatie aangeduid door de letter waarvan de score moet vermenigvuldigd worden te laten voorafgaan door de vermenigvuldigingsfactor. Zo duidt e2qu3in2ox aan dat de scores van de letters q en o moeten verdubbeld worden en dat de score van de letter i moet verdriedubbeld worden. Op die manier levert het woord equinox een totale score van 36 punten op.
In Scrabble bestaat een woord uit een opeenvolging van letters, waarbij geen onderscheid gemaakt wordt tussen hoofdletters en kleine letters. Aan elke letter van het alfabet wordt een vaste score toegekend:
score | letters |
---|---|
1 | A, E, I, L, N, O, R, S, T, U |
2 | D, G |
3 | B, C, M, P |
4 | F, H, V, W, Y |
5 | K |
8 | J, X |
10 | Q, Z |
Gevraagd wordt:
Schrijf een functie cijfers waaraan een woord (str) moet doorgegeven worden. De functie moet de string (str) teruggeven die bekomen wordt door elke letter van het gegeven woord te vervangen door zijn corresponderende score. Hierbij wordt een score van 10 voorgesteld door de hoofdletter X.
Schrijf een functie ispalindroom waaraan een woord (str) moet doorgegeven worden. De functie moet een Booleaanse waarde (bool) teruggeven die aangeeft of het gegeven woord een palindroom is in Scrabble.
Schrijf een functie score waaraan de Scrabblenotatie (str) van een woord moet doorgegeven worden. De functie moet de score (int) van het woord op het Scrabblebord teruggeven.
>>> cijfers('spectromicroscope')
'13131113131113131'
>>> cijfers('eQuInOx')
'1X11118'
>>> cijfers('OVEREFFUSIVE')
'141114411141'
>>> ispalindroom('spectromicroscope')
True
>>> ispalindroom('eQuInOx')
False
>>> ispalindroom('OVEREFFUSIVE')
True
>>> score('spectromicroscope')
29
>>> score('e2Qu3In2Ox')
36
>>> score('O3VERE2F3FUSI2VE')
48