Rummikub is een gezelschapsspel dat oorspronkelijk werd gespeeld met twee sets kaarten. Omdat daarvoor vrij veel ruimte op de tafel nodig was, zijn de kaarten in moderne versies van het spel vervangen door 106 kleinere stenen: twee sets van de getallen 1 tot en met 13 in de kleuren rood-geel-blauw-zwart en twee jokers ($$2 \times 13 \times 4 + 2 = 106$$).
Bij aanvang van het spel worden alle stenen op hun kop op tafel gelegd, zodat hun waarde niet zichtbaar is. Deze stenen vormen de pot. Daarna neemt iedere speler 14 stenen uit de pot, en zet ze op zijn rekje. Om te bepalen wie mag beginnen, pakt elke speler een extra steen uit de pot en legt die zichtbaar op tafel. De speler wiens steen de hoogste waarde heeft mag beginnen.
Het doel van het spel is om als eerste al je stenen op tafel te leggen door nieuwe rijtjes en groepen te vormen en open op tafel uit te leggen, of door rijtjes en groepen die open op tafel liggen aan te vullen. Hiervoor moeten de spelers tijdens het spel mogelijks bijkomende stenen uit de pot nemen en op hun rekje plaatsen.
Een steen van het spel Rummikub wordt voorgesteld als een string (str). Deze string begint met een natuurlijk getal uit het interval $$[1, 13]$$ die de waarde van de steen voorstelt, gevolgd door één enkele hoofdletter die de kleur van de steen voorstelt: R (rood), G (geel), B (blauw) of Z (zwart). De jokers worden buiten beschouwing gelaten.
Een collectie stenen die een speler wil uitleggen wordt voorgesteld als een lijst (list), een tuple (tuple) of een verzameling (set) met stenen. Volgens de spelregels kan een collectie stenen enkel uitgelegd worden als ze bestaat uit minstens drie stenen en als alle stenen van de reeks verschillend zijn. Naast deze twee basisvoorwaarden wordt er in de spelregels onderscheid gemaakt tussen twee soorten van collecties stenen die kunnen uitgelegd worden: groepen en rijtjes.
Een groep stenen is een collectie stenen die allemaal dezelfde waarde maar een verschillende kleur hebben. Hieronder zie je bijvoorbeeld een groep van vier stenen: 4 rood, 4 blauw, 4 geel en 4 zwart.
Een rijtje stenen is een collectie stenen die allemaal dezelfde kleur hebben en waarvan de waarden een opeenvolgende reeks natuurlijke getallen vormen als ze in stijgende volgorde geplaatst worden. Hierbij volgt de waarde 1 niet op de waarde 13. Hieronder zie je bijvoorbeeld een rijtje van vijf stenen: 6 blauw, 7 blauw, 8 blauw, 9 blauw en 10 blauw.
Gevraagd wordt:
Schrijf een functie groep waaraan een lijst (list), een tuple (tuple) of een verzameling (set) met stenen (str) moet doorgegeven worden. De functie moet een Booleaanse waarde (bool) teruggeven die aangeeft of de gegeven stenen een geldige groep stenen vormen.
Schrijf een functie rijtje waaraan een lijst (list), een tuple (tuple) of een verzameling (set) met stenen (str) moet doorgegeven worden. De functie moet een Booleaanse waarde (bool) teruggeven die aangeeft of de gegeven stenen een geldig rijtje stenen vormen.
>>> groep(['4R', '4B', '4G', '4Z'])
True
>>> groep({'6B', '7B', '8B', '9B', '10B'})
False
>>> groep(('11R', '2B', '7G', '2B', '9Z'))
False
>>> rijtje(['4R', '4B', '4G', '4Z'])
False
>>> rijtje({'6B', '7B', '8B', '9B', '10B'})
True
>>> rijtje(('11R', '2B', '7G', '2B', '9Z'))
False