Wat zou er gebeuren als we emoji tot leven zouden wekken? Dat moet zowat het idee geweest zijn toen Tony Leondis en Eric Siegel het verhaal begonnen uit te werken voor de film The Emoji Movie1 (2017).
Het resultaat is een draak van een film die op 23 juli 2017 in première ging. De film was wel een commercieel succes en bracht wereldwijd $217.8 miljoen op — tegenover een productiebudget van $50 miljoen — maar kreeg overal zeer negatieve recensies. Er kwam vernietigende kritiek op het script, de humor, het gebruik van productplaatsing, de toon, de ingesproken stemmen, het gebrek aan originaliteit en plot, met negatieve vergelijkingen en overeenkomsten met andere animatiefilms.
The Emoji Movie werd in 5 categorieën genomineerd voor de 38e Golden Raspberry Awards2 en sleepte daarvan vier prijzen in de wacht. Het was de eerste animatiefilm die elk van deze categorieën won. The Emoji Movie wordt vaak genoemd als slechtste film van 2017 en duikt vaak op in lijstjes met de slechtst gemaakte animatiefilms ooit. Op Rotten Tomatoes3 krijgt de film een score van 6% op basis van 134 professionele recensies, met een gemiddelde publieksbeoordeling van 37%. Op IMDb4 krijgt de film een publieksbeoordeling van 3.4/10.
Dat moet toch beter kunnen, dachten we bij het opstellen van deze opgave. We hebben daarom verschillende technieken gebruikt om namen van personages uit animatiefilms te coderen onder de vorm van emoji. Daarbij hebben we in de naam van een personage telkens elke letter vervangen door één of meer emoji, zonder onderscheid te maken tussen hoofdletters en kleine letters. Alle karakters uit de naam die geen letters zijn, zijn gewoon op hun plaats blijven staan. Dit is bijvoorbeeld zo'n gecodeerde naam:
🐇🐺🐵☃☃
Om de gecodeerde naam te kunnen ontcijferen, geven we je als tip een dictionary (dict) die elke emoji (str) uit de gecodeerde naam afbeeldt op de naam (str) van een personage uit een animatiefilm. Die naam bestaat enkel uit hoofdletters en het personage is een geantropomorfiseerde5 versie van wat de emoji voorstelt. Dit zijn bijvoorbeeld de namen die horen bij de emoji uit de gecodeerde naam die we hierboven als voorbeeld gebruikt hebben:
emoji | naam |
---|---|
☃ | OLAF |
🐇 | BUGSBUNNY |
🐵 | LOUIE |
🐺 | AKELA |
In dit geval kan je de gecodeerde naam ontcijferen door elke emoji te vervangen door de eerste letter van de naam die er volgens de tip mee correspondeert. Dan krijg je BALOO6 — de Engelstalige naam van de antropomorfe lippenbeer die als personage voorkomt in Het Jungleboek7. Maar we hebben ook nog andere manieren gebruikt om namen te coderen als reeksen van emoji.
Gevraagd wordt:
Schrijf een functie eerste_letter waaraan een gecodeerde naam (str) en de bijhorende tip (dict) moeten doorgegeven worden. De functie moet de naam (str) teruggeven die je bekomt door elke emoji te vervangen door de eerste letter van de naam die er volgens de tip mee correspondeert. Daarbij moet de functie
enkel karakters in de gecodeerde naam als emoji beschouwen als ze als sleutel voorkomen in de dictionary van de bijhorende tip; karakters die geen emoji zijn, bleven in de gecodeerde naam gewoon op hun plaats staan
ervoor zorgen dat de dictionary die als tip wordt doorgegeven, nooit gewijzigd wordt
Deze voorwaarden gelden ook voor de volgende twee functies.
Schrijf een functie herhaalde_emoji waaraan een gecodeerde naam (str) en de bijhorende tip (dict) moeten doorgegeven worden. De functie moet de naam (str) teruggeven die je bekomt door elke opeenvolging van $$n$$ dezelfde emoji te vervangen door de $$n$$-de letter van de naam die er volgens de tip mee correspondeert. Als er in de gecodeerde naam bijvoorbeeld drie keer na elkaar een ☃-emoji voorkomt (☃☃☃) en de ☃-emoji correspondeert volgens de tip met de naam OLAF, dan moeten die drie ☃-emoji dus vervangen worden door A als derde letter van de naam.
Schrijf een functie volgende_letter waaraan een gecodeerde naam (str) en de bijhorende tip (dict) moeten doorgegeven worden. De functie moet de naam (str) teruggeven die je bekomt door telkens het $$n$$-de voorkomen van een emoji te vervangen door de $$n$$-de letter van de naam die er volgens de tip mee correspondeert. Daarbij moet je ervan uitgaan dat na de laatste letter in de naam terug de eerste letter volgt. Als een ☃-emoji volgens de tip bijvoorbeeld correspondeert met de naam OLAF, dan moet de eerste ☃-emoji in de gecodeerde naam vervangen worden door O als eerste letter in de naam, de tweede ☃-emoji door L als tweede letter in de naam, de derde ☃-emoji door A als derde letter in de naam, de vierde ☃-emoji door F als vierde letter in de naam, de vijfde ☃-emoji door O als eerste letter in de naam (de naam heeft geen vijfde letter dus na de vierde letter volgt terug de eerste letter), enzoverder.
>>> eerste_letter('🐇🐺🐵☃☃', {'☃': 'OLAF', '🐇': 'BUGSBUNNY', '🐵': 'LOUIE', '🐺': 'AKELA'})
'BALOO'
>>> eerste_letter('🐸🐺🧜', {'🐸': 'KERMIT', '🐺': 'AKELA', '🧜': 'ARIEL'})
'KAA'
>>> eerste_letter('🧚☃👦', {'☃': 'OLAF', '👦': 'MOWGLI', '🧚': 'TINKERBELL'})
'TOM'
>>> herhaalde_emoji('😸🧸🧸🚗🚗🚗☃☃☃💰💰💰🐳🐳', {'☃': 'OLAF', '🐳': 'MONSTRO', '💰': 'SCROOGEMCDUCK', '😸': 'FELIXTHECAT', '🚗': 'LIGHTNINGMCQUEEN', '🧸': 'WINNIETHEPOOH'})
'FIGARO'
>>> herhaalde_emoji('❄🦊🦊🦊🐺🐺🐺🐭🐭🐭😸😸 🐺🐺🐘🦘🦘🐾🐾', {'❄': 'SNOWWHITE', '🐘': 'HATHI', '🐭': 'JERRY', '🐺': 'AKELA', '🐾': 'SNOOPY', '😸': 'FELIXTHECAT', '🦊': 'JOHNWORTHINGTONFOULFELLOW', '🦘': 'KANGA'})
'SHERE KHAN'
>>> herhaalde_emoji('👦👦👦🦗🦗❄❄🦆🦆🦆🚗🚗🐤🐤🐤-⭐⭐⭐🦊🦊🦊🐤🐤🐤-🧽🧽🐳🐳🐰🐰👧👧', {'❄': 'SNOWWHITE', '⭐': 'PATRICKSTAR', '🐤': 'TWEETY', '🐰': 'ROGERRABBIT', '🐳': 'MONSTRO', '👦': 'MOWGLI', '👧': 'SHANTI', '🚗': 'LIGHTNINGMCQUEEN', '🦆': 'DONALDDUCK', '🦊': 'JOHNWORTHINGTONFOULFELLOW', '🦗': 'JIMINY', '🧽': 'SPONGEBOBSQUAREPANTS'})
'WINNIE-THE-POOH'
>>> volgende_letter('🐶🧜🧜🐱🧜🧜🐵🦆', {'🐱': 'FIGARO', '🐵': 'LOUIE', '🐶': 'GOOFY', '🦆': 'DONALDDUCK', '🧜': 'ARIEL'})
'GARFIELD'
>>> volgende_letter('🐁☃🧸🐶🐵🧸', {'☃': 'OLAF', '🐁': 'MICKEYMOUSE', '🐵': 'LOUIE', '🐶': 'GOOFY', '🧸': 'WINNIETHEPOOH'})
'MOWGLI'
>>> volgende_letter('🐗🐵🐗🐅🐵', {'🐅': 'TIGGER', '🐗': 'PUMBAA', '🐵': 'LOUIE'})
'PLUTO'
>>> volgende_letter('🐼🐼🤓🐼🧜🐟🐼🐙🧜', {'🐙': 'URSULA', '🐟': 'DORY', '🐼': 'PO', '🤓': 'MINION', '🧜': 'ARIEL'})
'POMPADOUR'
In een bos in Oregon (VSA) plantte David Hampton douglassparren (Pseudotsuga menziesii) en lorkbomen (Larix) in de vorm van een gezicht. De lorkbomen kleuren elke herfst oranje, waardoor er een smiley verschijnt.
Het gezicht heeft een diameter van ongeveer 90 meter. Er werd een touw gebruikt om de cirkels te bepalen waarin douglassparren voor de ogen en mond geplant werden. De rest van het gezicht werd opgevuld met lorkbomen. Beide soorten zullen uiteindelijk gerooid worden, maar in elk geval zullen ze de komende 30-50 jaar nog blijven staan.