Het Rad van Fortuin is een spelprogramma dat in Vlaanderen reeds in de jaren '70 werd uitgezonden op de toenmalige BRT (toen nog onder de naam Rad der Fortuinen) met Mike Verdrengh als presentator. Na de oprichting van de commerciële zender VTM werd het daar al gauw één van de populairste programma's, gepresenteerd door Walter Capiau en zijn bevallige lettermeisje Aurore.
Het spel verloopt over een aantal ronden, waarbij drie kandidaten in elke ronde een zin of een gezegde moeten raden waarvan de rubriek gegeven is (bijvoorbeeld eten en drinken of een gebeurtenis). Op een speciaal bord wordt met gekleurde vlakken wordt aangegeven hoeveel letters de zin telt, en waar de spaties en leestekens staan. Tijdens het spel mogen de kandidaten om beurt een medeklinker raden. Alle voorkomens van de geraden medeklinker worden zichtbaar gemaakt door het lettermeisje. Op basis van de gegeven rubriek en de letters die op het bord verschijnen, moeten de kandidaten het woord proberen te raden nadat ze de gevleugelde woorden "Ik ga het zeggen, Walter …" hebben uitgesproken.
Het Rad van Fortuin was één van die televisieprogramma's die ontzettend veel kijkers lokten, maar waar niemand van durfde toegeven dat hij er stiekem naar meelonkte. Was het niet naar het lettermeisje, dan was het naar het glimmend chroom van de auto of de wasmachine in de prijzenkast. Een leuke anekdote: toen één van de lettermeisjes de gewonnen auto de studio moest binnenrijden, botste ze tegen het letterbord aan. Bord beschadigd en auto terug naar de garage voor een nieuwe bumper.
Minstens even legendarisch was het soms bedroevende niveau van de kandidaten. Sommige blunders zitten voor eeuwig en altijd in ons collectieve geheugen gegrift. Wat dacht je bijvoorbeeld van de zangeres Asebille O, het blootlichaampje, het waterbad, president Jill Clinton, de voetbalploeg AC Meloen, het fruit pimpelmuis, het bouwwerk de chinese mier, presentatrice Sabena Devis, de balletjestrui uit de Ronde van Frankrijk of de paneermuil uit de rubriek eten en drinken. En voor de Gentenaars mogen we natuurlijk ook de bruudruuster niet vergeten. Hilarische televisie! Ja zelfs het productiehuis Woestijnvis1 heeft zijn naam ontleend aan een lapsus uit het Rad van Fortuin.
Veel van deze bloopers zijn ondertussen een eigen leven gaan leiden, waardoor het soms moeilijk te achterhalen is welke ervan echt in het Rad van Fortuin zijn opgedoken, en welke urban legends zijn die door leukerds zijn verzonnen2.
Schrijf een functie patroon waaraan een string moet doorgegeven worden. De functie moet de string teruggeven die gevormd wordt door in de gegeven string alle klinkers (a, e, i, o en u en de corresponderende hoofdletters) te vervangen door een underscore (_). We noemen dit resultaat het patroon van de gegeven string.
Schrijf een functie blunders waaraan de locatie van een tekstbestand moet doorgegeven worden. Dit tekstbestand moet op elke regel een zin of een gezegde bevatten. De functie moet een dictionary teruggeven waarvan de sleutels gevormd worden door alle patronen van de zinnen of gezegdes uit het gegeven tekstbestand. Elke sleutel moet afgebeeld worden op de verzameling zinnen of gezegdes uit het tekstbestand die deze sleutel als patroon hebben. De functie heeft ook nog twee optionele parameters lengte en voorkomens, die beiden als standaardwaarde 1 hebben. De dictionary die door de functie teruggegeven wordt, mag enkel sleutel/waarde-paren bevatten waarvan de sleutels minstens uit lengte karakters bestaan en waarvan de waardenverzameling minstens voorkomens elementen bevat.
Bij onderstaande voorbeeldsessie gaan we ervan uit dat het tekstbestand radvanfortuin.txt3 zich in de huidige directory bevindt.
>>> patroon('AC Meloen')
'_C M_l__n'
>>> patroon('woestijnvis')
'w__st_jnv_s'
>>> patroon('bruudruuster')
'br__dr__st_r'
>>> mogelijkheden = blunders('radvanfortuin.txt')
>>> mogelijkheden['_C M_l__n']
{'AC Meloen', 'AC Milaan'}
>>> mogelijkheden['w__st_jnv_s']
{'woestijnvos', 'woestijnvis'}
>>> mogelijkheden['br__dr__st_r']
{'broodrooster', 'bruudruuster'}
>>> blunders('radvanfortuin.txt', lengte=12)
{'br__dr__st_r': {'bruudruuster', 'broodrooster'}, 'B_ll Cl_nt_n': {'Bill Clinton'}, 'J_ll Cl_nt_n': {'Jill Clinton'}}
>>> blunders('radvanfortuin.txt', voorkomens=3)
{'p_mp_lm__s': {'pimpelmees', 'pompelmoes', 'pimpelmuis'}, '_s_b_ll_ _': {'Osebolle O', 'Asebille O', 'Isabelle A'}}
>>> blunders('radvanfortuin.txt', voorkomens=2, lengte=12)
{'br__dr__st_r': {'broodrooster', 'bruudruuster'}}