Outils pour utilisateurs

Outils du site


nsi:tds:divers:chuck_norris

Le code de Chuck Norris

Chuck Norris s'exprime avec son pistolet. Il tire dans le mur et forme un message avec les trous des balles.

Un message ressemble à 00 0 0 0000 0 00 00 0 0000 0 00 0 000 00 00 0 0 0 0 00 00 0 0000 0 000 0 0 0 0 0 000 00 0 0 – les 0 représentent les trous.

Voici comment il faut comprendre :

  1. Si le message commence par 0, c'est que le premier bloc devra être remplacé par un bloc de 1
  2. Si le message commence par 00, c'est que le premier bloc est un bloc de 0 (tel qu'il est déjà)
  3. Après le premier bloc, on alterne 1 et 0 : Si un bloc est un bloc de 0, le suivant sera un bloc de 1, et réciproquement.
  4. On regroupe les 1 et les 0 par paquets de 8
  5. Le message obtenu est en ISO – compatible avec unicode vu qu'on se limite au premier octet

Exemple

00 0 0 0000 0 00 00 0 0000 0 00 0 000 00 00 0 0 0 0 00 00 0 0000 0 000 0 0 0 0 0 000 00 0 0
  1. Le premier 0 signifie que le premier bloc est composé de 0 puis on alterne :
    0 1 0000 1 00 11 0 1111 0 11 0 111 00 11 0 1 0 1 00 11 0 1111 0 111 0 1 0 1 0 111 00 1 0
  2. On regroupe par blocs de 8
    01000010 01101111 01101110 01101010 01101111 01110101 01110010
  3. Chaque bloc représente un caractère iso / unicode :
    B o n j o u r

Et voilà !

À faire : Implémenter une fonction decode_chuck(chaine) qui renvoie la version texte d'un message écrit par Chuck Norris avec son pistolet.

Je vous propose d'essayer de décoder ce message :

00 0 0 0000 00 0 00 0 0 0000 000 0 0 0 0 0 00 000 00 0 00 0 0 0 00 00 0 000000 0 00 000 00 00 0 0000 0 000 00 0 00 000 00 0 00 00 0 0 00 0 0 000 00 00 00 0 000000 00 0000 0 00 0 000000 00 00 0 00 000 0 0 00 0 0 00 0 0 0 0 0 000 0000000 0 000000 00 000 00 0 00 0 0000 0 00 0 00 0 0 0 000 00000 000 0 0 00 000 0 0 00 0 00 0 000000 00 0 0 0 0 00 000 0 0 0 0 0 000 00 00 0 000 000 0 0 000 0 0 0 0 00 0 00 000000 0000000 0 000000 00 0 00 0000 0 00 000 0 00 0 0 00 0 0 00 0 000 00 00 00 00 00 00 0 0 00 0 0 00 0 000 00 00 0 0 00 0 00 0 0 000 000 0 000000 0 000 0 000 00 00 0 0 0 0 000 0 0 0 0 0 0000 00000 0 000000 00 00 00 00 00 0 0000 0 00 0 0 00 0 0 000 00 00 00 0 0 000 0
nsi/tds/divers/chuck_norris.txt · Dernière modification : de goupillwiki