De tikcode is een heel eenvoudige manier om tekstberichten letter per letter te coderen. De naam verwijst naar het feit dat berichten verzonden worden als een reeks tikkende geluiden. Gevangenen gebruiken de code vaak om met elkaar te communiceren, meestal door te tikken op de metalen staven, pijpen of wanden in hun cel.

De code maakt gebruik van een vierkant $$5 \times 5$$ rooster waarin alle letters in alfabetische volgorde uitgeschreven worden van links naar rechts, en van boven naar onder. Dit met uitzondering van de letter K, die gelijkgesteld wordt aan de letter C.

  1 2 3 4 5
1 A B C/K D E
2 F G H I J
3 L M N O P
4 Q R S T U
5 V W X Y Z

De luisteraar moet enkel letten op de timing van het tikken om letters te kunnen onderscheiden. Elke letter wordt immers gecommuniceerd aan de hand van twee getallen:

Om bijvoorbeeld de letter B te communiceren, moet men één keer tikken, dan kort pauzeren, en dan twee keer tikken. Om het woord VICTOR te communiceren, moet de volgende code gebruikt worden (de pauze tussen elk getal van een paar is doorgaans ook korter dan de pauze tussen letters):

V I C T O R
5, 1 2, 4 1, 3 4, 4 3, 4 4, 2
..... . .. ..... . ... .... .... ... .... .... ..

Omwille van de moeilijkheid en de tijd die nodig is om één enkele letter te communiceren, hebben gevangenen vaak afkortingen en acroniemen bedacht voor veel voorkomende termen of zinnen, zoals GN voor good night of GBU voor god bless you.

Ter vergelijking: morsecode is veel moeilijker te communiceren door te tikken of te kloppen, omdat het daarbij nodig is om te tikken met een duidelijk en nauwkeurig ritme of om twee verschillende geluiden te produceren. Morsecode duurt ook langer om te leren. Om het vierkant rooster van de tikcode te leren, moet je gewoon het alfabet kennen en de korte reeks AFLQV (de beginletter van elke rij).

Opgave

De communicatie via tikcode wordt voorgesteld als een string (str) waarin een tik wordt voorgesteld door een punt (.) en de pauze tussen twee reeksen tikken (zowel de pauze tussen de twee getallen die een letter voorstellen als de pauze tussen twee letters) als een spatie. Gevraagd wordt:

Voorbeeld

>>> codeer_letter('V')
(5, 1)
>>> codeer_letter('i')
(2, 4)
>>> codeer('VICTOR')
'..... . .. .... . ... .... .... ... .... .... ..'
>>> codeer('Charlie')
'. ... .. ... . . .... .. ... . .. .... . .....'

>>> decodeer_letter(5, 1)
'V'
>>> decodeer_letter(2, 4)
'I'
>>> decodeer('..... . .. .... . ... .... .... ... .... .... ..')
'VICTOR'
>>> decodeer('. ... .. ... . . .... .. ... . .. .... . .....')
'CHARLIE'

Epiloog

Het bekendste voorbeeld van het gebruik van tikcode is onder Amerikaanse krijgsgevangenen tijdens de Vietnamoorlog. De code werd in juni 1965 geïntroduceerd door vier krijgsgevangenen in de Hỏa Lò1 gevangenis (beter bekend onder de bijnaam Hanoi Hilton): kapitein Carlyle "Smitty" Harris, luitenant Phillip Butler, luitenant Robert Peel en luitenant-commandant Robert Shumaker. Harris had ooit gehoord dat de tikcode gebruikt werd onder gevangenen in de Tweede Wereldoorlog en herinnerde zich een instructeur van de Amerikaanse luchtmacht die had uitgelegd hoe de code werkte.

In Vietnam werd de tikcode een zeer populaire manier waarmee geïsoleerde gevangen met elkaar konden communiceren. Krijgsgevangenen gebruikten de code om met elkaar te communiceren tussen cellen zonder dat de bewakers het konden oppikken. Ze gebruikten het om zowat alles met elkaar uit te wisselen, van vragen waarmee ze bestookt waren tijdens ondervragingen (zodat iedereen op een consistente manier een misleidend verhaal kon ophangen), tot wie er gewond was en anderen nodig had om magere voedselrantsoenen te doneren. De code was makkelijk om te leren en nieuw binnengekomen gevangenen konden ze binnen de paar dagen al vlot gebruiken. Ze werd zelfs gebruikt wanneer gevangenen naast elkaar zaten maar niet met elkaar mochten praten, door op de dij van een buur te tikken. Door tikcode te gebruiken om het isolement te doorbreken, konden gevangenen een hiërarchie aanhouden en het moreel handhaven.