Onderstaand tekstbestand bevat een boodschap die we gecodeerd hebben aan de hand van de K3-code of de driekleurencode.

~~n>868/Su79{3532w5=16dD$pK|67P44Q=,416Q]+c856yi8+pX96`72B6.
tj~1_60Mr%PL}04Q45>[g=523*KW3534414/F047q_jA@l52v3s8goo5.\05
BWd<427D2\08U15x{}419F'?M835Lo2?mI487i=zD=y00G?2092Bw,<!&D`^
1hF!!98!p

De K3-code maakt gebruik van drie soorten karakters die met drie verschillende kleuren aangeduid worden: leestekens (rood), letters (groen) en cijfers (blauw). Daarbij wordt geen onderscheid gemaakt tussen kleine letters en hoofdletters.

~~n>868/Su79{3532w5=16dD$pK|67P44Q=,416Q]+c856yi8+pX96`72B6.
tj~1_60Mr%PL}04Q45>[g=523*KW3534414/F047q_jA@l52v3s8goo5.\05
BWd<427D2\08U15x{}419F'?M835Lo2?mI487i=zD=y00G?2092Bw,<!&D`^
1hF!!98!p

Het aantal karakters op elke regel van het tekstbestand is een veelvoud van drie, waardoor de karakters/kleuren per drie kunnen groepeerd worden.

▪▪▪ ▪▪ ▪▪ ▪▪▪ ▪▪ ▪▪▪ ▪ ▪▪▪ ▪▪ ▪▪ ▪▪ ▪▪ ▪▪▪ ▪▪ ▪▪ ▪▪▪ ▪ ▪▪▪ ▪▪ 
▪▪▪ ▪ ▪▪▪ ▪▪ ▪▪ ▪▪ ▪▪▪ ▪▪ ▪▪ ▪▪▪ ▪▪▪ ▪▪▪ ▪▪ ▪▪ ▪▪▪ ▪▪ ▪ ▪▪ ▪▪ ▪▪▪
▪▪▪ ▪▪ ▪▪ ▪▪ ▪▪ ▪▪ ▪▪▪ ▪▪ ▪▪ ▪▪▪ ▪ ▪▪▪ ▪▪ ▪▪▪ ▪▪ ▪ ▪▪▪ ▪▪▪ ▪▪▪ ▪▪
▪▪ ▪▪▪ ▪

Met drie verschillende kleuren (voorgesteld door de letters R, G en B) kunnen in totaal 27 combinaties van drie kleuren gevormd worden. Het feit dat elke combinatie van drie opeenvolgende kleuren codeert voor één karakter van de oorspronkelijke boodschap vormt dus de sleutel van de K3-code.

BBB () ⟶ O                GBB () ⟶                  RBB () ⟶ A
BBG () ⟶ F                GBG () ⟶ H                RBG () ⟶ G
BBR () ⟶ P                GBR () ⟶ M                RBR () ⟶ Z
BGB () ⟶ Y                GGB () ⟶ Q                RGB () ⟶ C
BGG () ⟶ I                GGG () ⟶ L                RGG () ⟶ K
BGR () ⟶ D                GGR () ⟶ E                RGR () ⟶ B
BRB () ⟶ R                GRB () ⟶ W                RRB () ⟶ J
BRG () ⟶ N                GRG () ⟶ U                RRG () ⟶ V
BRR () ⟶ X                GRR () ⟶ T                RRR () ⟶ S

Als we deze sleutel toepassen op de gecodeerde boodschap, dan krijgen we

▪▪▪ ▪▪ ▪▪ ▪▪▪ ▪▪ ▪▪▪ ▪ ▪▪▪ ▪▪ ▪▪ ▪▪ ▪▪ ▪▪▪ ▪▪ ▪▪ ▪▪▪ ▪ ▪▪▪ ▪▪ 
 V   A   N       A   F   R   I   K   A       T   O   T       I   N       A   M

▪▪▪ ▪ ▪▪▪ ▪▪ ▪▪ ▪▪ ▪▪▪ ▪▪ ▪▪ ▪▪▪ ▪▪▪ ▪▪▪ ▪▪ ▪▪ ▪▪▪ ▪▪ ▪ ▪▪ ▪▪ ▪▪▪
 E   R   I   K   A       V   A   N       O   P       D   E       H   I   M   A

▪▪▪ ▪▪ ▪▪ ▪▪ ▪▪ ▪▪ ▪▪▪ ▪▪ ▪▪ ▪▪▪ ▪ ▪▪▪ ▪▪ ▪▪▪ ▪▪ ▪ ▪▪▪ ▪▪▪ ▪▪▪ ▪▪
 L   A   Y   A       T   O   T       I   N       D   E       W   O   E   S   T

▪▪ ▪▪▪ ▪
 I   J   N

waaruit we de oorspronkelijke boodschap kunnen uitlezen als

VAN AFRIKA TOT IN AMERIKA VAN OP DE HIMALAYA TOT IN DE WOESTIJN

Opgave

De sleutel van een K3-code wordt opgeslaan in een tekstbestand dat 27 regels bevat. Daarbij bestaat elke regel uit een karakter, gevolgd door een komma (,) en een unieke combinatie van drie kleuren (voorgesteld door de letters R, G en B) waardoor het karakter gecodeerd wordt. Merk op dat het karakter zelf ook een komma mag zijn.

U,GRG
D,BGR
 ,GBB
O,BBB
N,BRG
…
A,RBB
E,GGR
M,GBR

Gevraagd wordt:

Voorbeeld

In onderstaande voorbeeldsessie gaan we ervan uit dat de tekstbestanden sleutel.txt1 en boodschap.txt2 zich in de huidige directory bevinden.

>>> sleutel = lees_sleutel('sleutel.txt3')
>>> sleutel['RGB']
'C'
>>> sleutel['GBB']
' '
>>> sleutel['RRG']
'V'

>>> kleur('?')
'R'
>>> kleur('w')
'G'
>>> kleur('8')
'B'

>>> decodeer('boodschap.txt4', sleutel)
'VAN AFRIKA TOT IN AMERIKA VAN OP DE HIMALAYA TOT IN DE WOESTIJN'

Epiloog

De gecodeerde berichten die bij het testen van je ingediende oplossing gebruikt worden, komen allemaal uit de liedjesteksten van K35: een van oorsprong Belgische meidengroep met een Nederlandstalig poprepertoire dat voornamelijk gericht is op een jeugdig publiek. De naam van de groep verwijst naar de eerste letters van de voornamen van de oorspronkelijke bezetting: Karen Damen6, Kristel Verbeke7 en Kathleen Aerts8.

Bacons alfabet
Optreden van K3 met Karen Damen, Kathleen Aerts en Kristel Verbeke in Hasselt, België (2006).

Bronnen