Avec ce simple code réalisé avec Scratch, vous serez en mésure d’afficher (et d’écouter) un message en code binaire, comme celui envoyé par Arecibo le 16 novembre 1974, et décrit en cette activité. Voyons nous étape par étape, comme le réaliser.
Tout d’abord, de l’interface de Scratch dessinez un nouveau sprite (mieux si carré et de petite taille): ça sera votre bit. Faite-le de la couleur que vous préferez, l’important est qu’il soit bien visible sur le fond que vous choisirez. Dans notre projet (que nous vous invitons à ouvrir, regarder dedans et remixer) est un carré blanc de 4 pixels de coté, sur un fond spatial présent dans la librairie de Scratch.
Comme on disait, le sprite représente le bit qui, grâce au contrôle estampage, réplique sur le stage quand dans le message il prend la valeur 1. D’abord, dès que nous ne savons pas encore quel sera le message à reproduire, nous le cachons.
Le message à reproduire (celui d’Arecibo, dans ce cas) est enregistré dans une liste, ici nommée “message”, qui a été remplie en important les données d’un fichier externe. Pour faire ça, la liste est definie, qui sera afficée dans le stage et sera initialement vide. Cliquez avec le bouton droite de la souris sur la lista qui apparait dans le stage et, dans le mene contextuel qui apparait, selectionnez “importer”. Si vous choisissez le fichier à partir duquel importer les données (ça sera un fichier texte avec 0 et 1 organisés de manière à composer la grille du message) et, clicqant sur “ouvrir”, la liste se remplit de 0 et 1 organisés dans la même manière: elle autant d’éléments (lignes) qu’il y a de lignes de message, et autant d’éléments pour ligne qu’il y a de colonnes de la grille du message.
Dans la première partie du code, affiche l’initialisation de deux variables: “nombre de lignes” et “nombre de colonnes”, dont la valeur est determinée par le programme lui-même à l’aide de deux operateurs, un sur les listes, et un sur les stringhe (chaînes de caractères, dans ce cas des chiffres 0 et 1).
Le coeur du programme sont deux cycle, l’un dans l’autre. Le plus extérieur (plus lent) coule sur les lignes; le plus intérieur (plus rapide) coule sur les colonnes, c’est à dire sur les bits individuelle de chaque ligne du message. Donc, pour chaque ligne du message, si le bit (element i-énième) est 1, alors il “tamponne” le sprite sur le stage et émet un son, autrement (s’il est 0) il n’émet rien pour la même durée. Dans cette façon, le pixel carré apparaitra (et on écoutera le son) seul quand dans le message le bit est 1.
La partie la plus complexe du code est peut-être décider où on fait apparaître le bit/pixel. Ici, on a choisi de partir en haut à droite, aux coordennées (100,160) qui correspondent à la première iteration du cycle (indices i et j égaux à zero). À la variation de i, la formule implémentée passe à droite de 4 pixels, pour eviter que les bits se chevauchent. Avec la variation de j, la formule passe en bas de 4 pixels, pour la même raison.
En cliquant sur le drapeau vert, vous verrez le messaga appairaitre sur la droite, à côté de Martina, et vous pourrez aussi l’écouter.
Si vous voulez essayer à afficher un autre message, il suffit que vous importez le fichier texte avec le message binaire, comme décrit au début .