Galgje1 is een spelletje waarbij een speler letter voor letter de letters van een woord moet raden. Initieel krijgt de speler enkel te zien hoeveel letters het woord telt. De speler krijgt slechts een beperkt aantal beurten om het woord te raden, waarbij er telkens een beurt verloren gaat als de speler om een letter vraagt die niet in het woord voorkomt. Doorgaans wordt op basis van een tekening van een galg aangegeven hoeveel fouten de speler reeds heeft gemaakt, en dus onrechtstreeks ook hoeveel fouten hij nog mag maken.

Opgave

Schrijf een klasse Galgje die onder andere een methode raadLetter heeft. Bekijk onderstaand voorbeeld om af te leiden hoe men met de klasse Galgje kan werken. Let daarbij ook op de speciale gevallen.

Voorbeeld

>>> g = Galgje('BaNaan')
>>> print(g)
Je hebt nog 6 beurten.
......
>>> g.raadLetter('x')
Fout: letter x komt niet voor in het woord.
Je hebt nog 5 beurten.
......
>>> g.raadLetter('b')
Correct: letter b komt 1 keer voor in het woord.
Je hebt nog 5 beurten.
B.....
>>> g.raadLetter('n')
Correct: letter n komt 2 keer voor in het woord.
Je hebt nog 5 beurten.
B.N..n
>>> g.raadLetter(5)
Traceback (most recent call last):
AssertionError: argument is geen letter
>>> g.raadLetter('kiwi')
Traceback (most recent call last):
AssertionError: argument is geen letter
>>> g.raadLetter('e')
Fout: letter e komt niet voor in het woord.
Je hebt nog 4 beurten.
B.N..n
>>> g.raadLetter('n')
Traceback (most recent call last):
AssertionError: letter is al eens geprobeerd
>>> g.raadLetter('a')
Correct: letter a komt 3 keer voor in het woord.
Proficiat! Je hebt het woord geraden!
BaNaan
>>> print(g)
Proficiat! Je hebt het woord geraden!
BaNaan
>>> g.raadLetter('a')
Sorry, het spel is reeds voorbij.
>>> print(g)
Proficiat! Je hebt het woord geraden!
BaNaan

Voorbeeld

>>> g = Galgje('aardbei', beurten=3)
>>> print(g)
Je hebt nog 3 beurten.
.......
>>> g.raadLetter('a')
Correct: letter a komt 2 keer voor in het woord.
Je hebt nog 3 beurten.
aa.....
>>> g.raadLetter('b')
Correct: letter b komt 1 keer voor in het woord.
Je hebt nog 3 beurten.
aa..b..
>>> g.raadLetter('c')
Fout: letter c komt niet voor in het woord.
Je hebt nog 2 beurten.
aa..b..
>>> g.raadLetter('d')
Correct: letter d komt 1 keer voor in het woord.
Je hebt nog 2 beurten.
aa.db..
>>> g.raadLetter('e')
Correct: letter e komt 1 keer voor in het woord.
Je hebt nog 2 beurten.
aa.dbe.
>>> g.raadLetter('f')
Fout: letter f komt niet voor in het woord.
Je hebt nog 1 beurt.
aa.dbe.
>>> g.raadLetter('g')
Fout: letter g komt niet voor in het woord.
Ai, je bent opgehangen.
aardbei
>>> g.raadLetter('h')
Sorry, het spel is reeds voorbij.
>>> g.raadLetter('banaan')
Sorry, het spel is reeds voorbij.
>>> print(g)
Ai, je bent opgehangen.
aardbei