Drapeau vert, messages et bugs : je conçois et je débogue en Scratch
Dans ton jeu préféré, quand tu appuies sur une touche, le personnage saute ; quand il touche une pièce, le score augmente ; sans vie, la partie s'arrête. Voilà les quatre briques de tout programme : des événements (« quand… »), des variables (score, vies), des boucles et des conditions (« si… alors »). Cette année, tu vas concevoir un programme complet, fait de plusieurs scripts qui travaillent ensemble, puis le tester et le corriger, comme au brevet.
1. Les événements : qui démarre quoi ?
Un script commence toujours par un bloc « chapeau » d'événement : « quand le drapeau vert est cliqué », « quand la touche espace est pressée », « quand ce lutin est cliqué », ou « quand je reçois [message] », déclenché par un autre script qui a utilisé « envoyer à tous ».
Plusieurs scripts peuvent démarrer en même temps : ils s'exécutent en parallèle, coordonnés par les messages.
Exemple 1 : le chat qui attrape les pommes. Le lutin Chat a deux scripts :
quand le drapeau vert est cliqué
mettre [score] à 0
répéter indéfiniment
si < touche le [Pomme] ? > alors
ajouter 1 à [score]
envoyer à tous [nouvelle pomme] et attendre
quand la touche [flèche droite] est pressée
s'orienter à 90
avancer de 10 pas
Le lutin Pomme n'en a qu'un :
quand je reçois [nouvelle pomme]
aller à [position aléatoire]
La boucle surveille le contact, le clavier déplace le chat, le message déplace la pomme. Le « et attendre » évite de compter deux fois la même pomme.
2. Concevoir : découper le problème
Avant les blocs, on réfléchit sur papier :
- Décompose le problème en petites tâches.
- Liste les variables et leur valeur de départ : c'est l'initialisation.
- Choisis les événements qui déclenchent chaque tâche.
- Repère ce qui se répète (boucle) et ce qui dépend d'un test (condition).
- Pour une tâche répétée, crée ton bloc (« Mes blocs », « Créer un bloc »).
Exemple 2 : une frise de carrés qui grandissent. On veut tracer, côte à côte, cinq carrés de côtés 20, 30, 40, 50 et 60 pas.
définir carré (côté)
répéter 4 fois
avancer de (côté) pas
tourner ↻ de 90 degrés
quand le drapeau vert est cliqué
effacer tout
aller à x: -200 y: 0
s'orienter à 90
mettre [taille] à 20
stylo en position d'écriture
répéter 5 fois
carré (taille)
avancer de (taille) pas
ajouter 10 à [taille]
Avant de lancer, on prévoit : le lutin avance en tout de 20 + 30 + 40 + 50 + 60 = 200 pas vers la droite, il doit finir en x = 0. Sinon, il y a un bug.
À retenir
- Un script démarre par un événement ; plusieurs scripts peuvent tourner en parallèle et se coordonner par des messages.
- Une variable s'initialise au début du programme (« mettre … à … »).
- Boucles : « répéter n fois », « répéter jusqu'à », « répéter indéfiniment » ; conditions : « si … alors … sinon ».
- Concevoir : découper le problème, lister les variables, choisir les événements, puis assembler.
- Tester : prévoir, essayer des cas simples et limites, suivre les variables, corriger une chose à la fois.
★ Pour aller plus loin
Pourquoi « bug » ? Le mot anglais signifie « insecte ». En 1947, l'équipe de Grace Hopper, pionnière de l'informatique, trouva un papillon de nuit coincé dans un relais de l'ordinateur Mark II, à Harvard, et le colla dans son cahier de bord avec la mention « premier vrai cas de bug trouvé ». Le mot existait déjà, mais l'anecdote l'a rendu célèbre.
La toute première programmeuse est sans doute Ada Lovelace : en 1843, elle écrivit un algorithme pour une machine à calculer imaginée par Charles Babbage… qui ne fut jamais construite !
Sources pour creuser
- Livre : Les Rêveurs lunaires, Cédric Villani et Edmond Baudoin (Gallimard) — une bande dessinée où l'on croise Alan Turing, l'un des pères de l'informatique.
- Livre : Le Grand Roman des maths, Mickaël Launay (Flammarion) — l'histoire des mathématiques racontée comme un roman.
- scratch.mit.edu : le site officiel, avec ses tutoriels intégrés.
- Chaîne YouTube Yvan Monka (Maths et tiques) : cherche « Scratch ».
- castor-informatique.fr et algorea.org : concours gratuits d'informatique pour collégiens.
- lumni.fr et eduscol.education.fr (programme officiel du cycle 4).