OctothorpShriek est un jeu de programmation en shell qui sera sans doute un jour disponible sur www.octothorpshriek.org. En attendant il est toujours possible d'y jouer via Github et de me soumettre manuellement le résultat.
Pour participer nul besoin d'ordinateur de compétition ou de connaissance poussée en programmation: juste d'un environnement UNIX classique et d'un shell, respectant la norme POSIX de préférence.
Le but du jeu est d'implémenter quatres défis simulant du matériel ancien, en shell, afin d'obtenir le code secret de victoire. Les instructions et des jeux de données de tests sont présentes dans des sous-répertoires dédiés:
- cardreader ;
- dot-matrix ;
- antenna ;
- decoder.
Du matériel d'espionnage complètement obsolète provenant d'un stock de la guerre froide a fini par être déclassifié et mis à la disposition du public.
Étrangement personne n'a cherché à cracker le code secret transmis par radio à l'aide de la clef récupérée sur les cartes perforées.
Chaque défi implémenté en respectant les interfaces demandées rapporte 10 points et la victoire est atteinte lorsque le code secret peut être décodé de la façon suivante:
$ ./antenna -f data/radio.txt
$ cyphertext=...
$ ./decoder -m "$cyphertext" "$(./cardreader -f data/key.card)" | ./dot-matrix -f data/default.font
Le fichier key.card
contient la clef utilisée pour chiffrer le message secret transmis par radio.
Le fichier radio.txt
comprend un dump du protocole radio utilisé pour transmettre le message secret.
Dix points bonus sont attribués pour les efforts suplémentaires:
- ne pas utiliser de bashism ou kshism (pas de tableau, pas d'extension non POSIX).
- portabilité vers les autres UNIX que Linux.
Ne pas se jeter sur StackOverflow, les pages de man sont plus utiles et mieux écrites.
$ while read line; do ... ; done < "$file"
Avec cut.
Avec bc.