Kenneth "Kenny" McCormick is een fictief 9-jarig personage en één van de vier hoofdrolspelers in de animatiereeks South Park1, naast Stan Marsh2, Kyle Broflovski3 en Eric Cartman4. Zijn vaak gedempte en onverstaanbare stem — door de kap van zijn parka die zijn mond bedekt — wordt ingesproken door Matt Stone die de reeks mee creëerde. Hij is een leerling uit het derde, later vierde leerjaar die vaak buitengewone ervaringen heeft die atypisch zijn voor het conventionele leven in een kleine voorstad van zijn geboortestad South Park, Colorado, waar hij met zijn straatarme familie woont.

Kenneth "Kenny" McCormick
Kenneth "Kenny" McCormick

Het personage werd populair dankzij een running joke tijdens de eerste vijf seizoenen van de reeks, waarbij Kenny routinematig een ondraaglijke dood stierf voordat hij levend en wel terugkeerde in de volgende aflevering met weinig tot geen uitleg. Stan gebruikte daarbij vaak de slogan

Oh my god! They killed Kenny!

gevolgd door Kyle die uitriep

You bastard(s)!

De eerste, enige en laatste keer dat Kenny hardop en verstaanbaar sprak, was toen zijn gezicht volledig onbedekt was in de aflevering Bigger, Longer & Uncut5.

Opgave

Kenny's code is een pseudotaal die de gedempte stem van Kenny McCormick nabootst. In die taal wordt elk karakter van de klare tekst vervangen door een triplet van 3 letters dat samengesteld is uit de kleine letters m, f en p, en de hoofdletters M, F en P.

De sleutel van Kenny's code zit in een tekstbestand waarvan elke regel bestaat uit 4 karakters: een triplet (samengesteld uit de letters M, P, F, m, p en f) gevolgd door het corresponderende karakter uit de klare tekst. Zowel de tripletten als de corresponderende karakters worden hoogstens één keer gebruikt in een sleutel van Kenny's code. Met deze sleutel (kenny.01.txt6)

PPmy
FFPi
MfFe
FffK
pmPk
FMm.
mMF'
pmmh
pfpm
pFmV
FFMO
PMm 
mfPl
mmMn
mFpd
FMFo
pPp$
MPFg
mpFT
mmP!

waarin de tripletten in het blauw weergegeven worden, kan bijvoorbeeld de klare tekst

Oh my god! They killed Kenny!

omgezet worden naar de cijfertekst

 O   h       m   y       g   o   d   !       T   h   e   y       k   i   l   l   e   d       K   e   n   n   y   !
FFM pmm PMm pfp PPm PMm MPF FMF mFp mmP PMm mpF pmm MfF PPm PMm pmP FFP mfP mfP MfF mFp PMm Fff MfF mmM mmM PPm FMm

Door elk triplet in de cijfertekst te vervangen door het corresponderende karakter, krijg je terug de klare tekst.

Gevraagd wordt:

Voorbeeld

In deze interactieve sessie gaan we ervan uit dat de tekstbestanden kenny.01.txt7 en kenny.02.txt8 zich in de huidige directory bevinden.

>>> sleutel = lees_sleutel('kenny.01.txt9')
>>> sleutel['O']
'FFM'
>>> sleutel['h']
'pmm'
>>> sleutel[' ']
'PMm'

>>> codeer('Oh my god! They killed Kenny.', 'kenny.01.txt10')
'FFMpmmPMmpfpPPmPMmMPFFMFmFpmmPPMmmpFpmmMfFPPmPMmpmPFFPmfPmfPMfFmFpPMmFffMfFmmMmmMPPmFMm'
>>> codeer("Don't lie, Stan. Lying makes you sterile.", 'kenny.02.txt11')
'FfPFMfmFFPPFpmFpMMmPFfPPfpPPPfpMMFFfpmFpFFmFFpPFpMMpFfPPmfPPmFFMPfpMMMpPpFFMFffpPMMPpMMPPmFMfFpMpMMMMPpmFfpPMFPfPPmPFfpPpPF'
>>> codeer('Oh my god! They killed Kenny.', 'kenny.02.txt12')
Traceback (most recent call last):
AssertionError: ongeldige sleutel

>>> omgekeerde_sleutel = sleutel_omkeren(sleutel)
>>> omgekeerde_sleutel['FFM']
'O'
>>> omgekeerde_sleutel['pmm']
'h'
>>> omgekeerde_sleutel['PMm']
' '

>>> decodeer('FFMpmmPMmpfpPPmPMmMPFFMFmFpmmPPMmmpFpmmMfFPPmPMmpmPFFPmfPmfPMfFmFpPMmFffMfFmmMmmMPPmFMm', 'kenny.01.txt13')
'Oh my god! They killed Kenny.'
>>> decodeer('FfPFMfmFFPPFpmFpMMmPFfPPfpPPPfpMMFFfpmFpFFmFFpPFpMMpFfPPmfPPmFFMPfpMMMpPpFFMFffpPMMPpMMPPmFMfFpMpMMMMPpmFfpPMFPfPPmPFfpPpPF', 'kenny.02.txt14')
"Don't lie, Stan. Lying makes you sterile."
>>> decodeer('FFMpmmPMmpfpPPmPMmMPFFMFmFpmmPPMmmpFpmmMfFPPmPMmpmPFFPmfPmfPMfFmFpPMmFffMfFmmMmmMPPmFMm', 'kenny.02.txt15')
Traceback (most recent call last):
AssertionError: ongeldige cijfertekst

Epiloog

Films waarin vaakst het woord fuck gebruikt wordt:

  1. Tigerland16 (527×)

  2. Nil By Mouth17 (470×)

  3. Casino18 (422×)

  4. South Park: Bigger, Longer & Uncut19 (399×)

  5. Martin Lawrence Live: Runteldat20 (347×)

  6. Another Day in Paradise21 (327×)

  7. Summer of Sam22 (326×)

  8. Twin Town23 (320×)

  9. Ken Loach's Sweet Sixteen24 (313×)

  10. Narc25 (298×)

De winnaar — Joel Schumacher's infanterie-trainingsdrama Tigerland uit 2000 — stopt 527 fucks in 100 minuten, wat neerkomt op een fuck-per-minuut ratio van 5,27, oftewel één fuck per 12 seconden.

Damn it, Cantwell! Shit, man. Shit! Fuck, I don’t even know you, man! You sittin’ there telling your fucking stories. You make me want to fuckin’ cry! What’s that about?

Schumacher kreeg die kerst een brok steenkool cadeau.