PROG0601 - AC Melon

no tags 

Wheel of Fortune is a television game show created by Merv Griffin. The show features a competition in which three contestants solve word puzzles — similar to hangman — to win cash and prizes determined by spinning a giant carnival wheel. Each round has a category and a blank word puzzle, with each blank representing a letter in a hidden sentence. The contestants spin the wheel in turn to determine a dollar value and guess a consonant. Calling a correct letter earns the value before the corresponding flipper, multiplied by the number of times the letter appears in the puzzle. Based on the given category and the letters that appear on the puzzle board, the contestant taking turn may then attempt to guess the hidden sentence.

new baby buggy
In the television game show Wheel of Fortune, the contestant have to guess a hidden sentence based on the letters that appear of the puzzle board.

Wheel of Fortune ranks as the longest-running syndicated game show in the United States, with over 6000 episodes aired. TV Guide named it the top-rated syndicated series in a 2008 article, and in 2013 the magazine ranked it at No. 2 in its list of the 60 greatest game shows ever. The program has also come to gain a worldwide following with sixty international adaptations.

The game has been made legendary by the stupidity of some of its candidates. Some blunders forever sit in our collective memory. Did you know the Italian football team AC Melon, president Jill Clinton, the character Wander Women, the style of humor called slipstack, or the characters Batmen and Reban?

For every miraculous New Baby Buggy guess on the show, there are dozens more Mythological Hero Achilles incidents. Many of these bloopers have started to live their own life, which sometimes makes it hard to figure out which ones have really occurred in Wheel of Fortune, and which ones are urban legends that have been fabricates by some funny guys.

Assignment

  • Write a function pattern that takes a string as its argument. The function must return the string that is obtained by replacing all vowels (a, e, i, o and u and their upper case versions) in the given string by an underscore (_). This result is called the pattern of the given string.
  • Write a function bloopers that takes the location of a text file. This text file must contains a sequence of sentences, each on a separate line. The function must return a dictionary whose keys are the patterns of all sentences that occur in the given text file. Each key must be mapped onto the set of sentences from the text file that have this key as their pattern. The function also has two optional parameters length and occurrences, that both have 1 as their default value. The dictionary returned by the function may only contain key/value pairs whose key contains at least length characters and whose value set contains at least occurrences letters.

Example

The following interactive session assumes that the text file wheeloffortune.txt is located in the current directory.

>>> pattern('AC Melon')
'_C M_l_n'
>>> pattern('slipstack')
'sl_pst_ck'
>>> pattern('Wander Women')
'W_nd_r W_m_n'

>>> candidates = bloopers('wheeloffortune.txt')
>>> candidates['_C M_l_n']
{'AC Melon', 'AC Milan'}
>>> candidates['sl_pst_ck']
{'slapstick', 'slipstack'}
>>> candidates['W_nd_r W_m_n']
{'Winder Woman', 'Wander Women', 'Wonder Woman'}

>>> bloopers('wheeloffortune.txt', length=13)
{'B_tm_n _nd R_b_n': {'Batman and Robin', 'Batmen and Reban'}}
>>> bloopers('wheeloffortune.txt', occurrences=3)
{'W_nd_r W_m_n': {'Wander Women', 'Winder Woman', 'Wonder Woman'}}
>>> bloopers('wheeloffortune.txt', occurrences=2, length=12)
{'W_nd_r W_m_n': {'Wander Women', 'Winder Woman', 'Wonder Woman'}, 'B_tm_n _nd R_b_n': {'Batman and Robin', 'Batmen and Reban'}}

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 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.

AC Meloen
In het televisieprogramma Rad van Fortuin moeten de kandidaten een zin of een gezegde raden op basis van de letters die op het spelbord verschijnen.

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 Woestijnvis 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 verzonnen.

Opgave

  • 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.

Voorbeeld

Bij onderstaande voorbeeldsessie gaan we ervan uit dat het tekstbestand radvanfortuin.txt 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'}}


Added by:Peter Dawyndt
Date:2015-12-03
Time limit:10s
Source limit:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:PY_NBC