🐱 Programmation Scratch — Cours Complet
Apprendre Scratch au collège — Tous les blocs, les structures et les exercices type brevet corrigés
1. L'interface Scratch
2. Les catégories de blocs
3. Les 3 structures fondamentales
4. Mouvement et stylo
5. Les conditions (Si / Sinon)
6. Les boucles (Répéter)
7. Les variables
8. Messages et clones
9. Exercices type brevet corrigés
10. Erreurs fréquentes
11. De Scratch à Python
FAQ
🖥️ 1. L'Interface de Scratch
Scratch est accessible gratuitement sur scratch.mit.edu. L'interface se divise en trois zones principales :
| Zone | Position | Rôle |
|---|---|---|
| Palette de blocs | Gauche | Tous les blocs disponibles, classés par catégorie (couleur). On les glisse vers la zone de script. |
| Zone de script | Centre | L'espace de travail où l'on assemble les blocs pour créer le programme. Les blocs s'emboîtent verticalement. |
| Scène | Droite | L'espace visuel où le résultat du programme s'affiche. Le lutin (sprite) se déplace ici. Dimensions : 480 × 360 pixels. Le centre de la scène est le point (0, 0). |
🎨 2. Les Catégories de Blocs Scratch
Scratch organise ses blocs en 9 catégories identifiées par des couleurs. Voici un tableau complet avec les blocs les plus importants de chaque catégorie :
| Catégorie | Couleur | Rôle | Blocs essentiels |
|---|---|---|---|
| Mouvement | Bleu | Déplacer et orienter le lutin | avancer de __ pas, tourner ↻ de __ degrés, aller à x: __ y: __, glisser en __ secondes à x: __ y: __, s'orienter à __, rebondir si le bord est atteint |
| Apparence | Violet | Modifier l'aspect du lutin | dire __ pendant __ secondes, penser __, basculer sur le costume __, costume suivant, montrer, cacher, mettre la taille à __ % |
| Son | Rose | Jouer des sons | jouer le son __, jouer le son __ jusqu'au bout, mettre le volume à __ % |
| Événements | Jaune | Démarrer les scripts | quand ⚑ est cliqué, quand la touche __ est pressée, quand ce sprite est cliqué, quand je reçois __ |
| Contrôle | Orange | Structures : boucles, conditions, attentes | attendre __ secondes, répéter __ fois, répéter indéfiniment, si __ alors, si __ alors / sinon, arrêter tout |
| Capteurs | Cyan | Détecter des événements | touche __ pressée ?, souris pressée ?, couleur __ touchée ?, __ touché ?, distance de __, demander __ et attendre, réponse, chronomètre |
| Opérateurs | Vert | Calculs et logique | __ + __, __ − __, __ × __, __ / __, nombre aléatoire entre __ et __, __ < __, __ = __, __ > __, __ et __, __ ou __, non __, reste de __ / __ (modulo) |
| Variables | Orange foncé | Stocker et modifier des valeurs | mettre __ à __, ajouter __ à __, montrer la variable __, cacher la variable __ |
| Stylo | Turquoise | Dessiner sur la scène | effacer tout, stylo en position d'écriture, relever le stylo, mettre la couleur du stylo à __, mettre la taille du stylo à __ |
quand ⚑ est cliqué), les blocs empilables (rectangulaires, s'empilent les uns sur les autres), les blocs reporters (arrondis, retournent une valeur comme position en x), et les blocs booléens (hexagonaux, retournent vrai ou faux comme touche espace pressée ?). Au brevet, on vous demande souvent d'identifier le type de bloc et son rôle.🏗️ 3. Les 3 Structures Fondamentales
Tout programme informatique, qu'il soit en Scratch, Python ou n'importe quel langage, repose sur seulement trois structures :
répéter 10 fois), soit indéfiniment (répéter indéfiniment), soit tant qu'une condition est vraie.Ces trois structures peuvent être combinées et imbriquées : on peut mettre une condition à l'intérieur d'une boucle, ou une boucle à l'intérieur d'une condition, etc. C'est ce qui permet de créer des programmes complexes.
🎯 4. Mouvement et Dessin avec le Stylo
Déplacer le lutin
Le lutin se déplace dans la scène selon sa direction (l'angle vers lequel il pointe) et un nombre de pas (1 pas = 1 pixel). Les deux commandes de base :
| Bloc | Effet | Détail |
|---|---|---|
avancer de 10 pas | Le lutin avance dans la direction où il pointe | Un nombre négatif le fait reculer |
tourner ↻ de 90 degrés | Le lutin pivote de 90° dans le sens horaire | ↺ pour le sens antihoraire |
s'orienter à 90 | Le lutin pointe vers la droite | 0°=haut, 90°=droite, 180°=bas, -90°=gauche |
aller à x: 0 y: 0 | Le lutin se téléporte au centre | Déplacement instantané |
glisser en 1 s. à x: 100 y: 50 | Le lutin glisse vers (100, 50) en 1 seconde | Déplacement visible et progressif |
Dessiner avec le stylo
Le bloc Stylo (extension à ajouter dans Scratch 3) permet au lutin de dessiner sur la scène en se déplaçant, comme un crayon sur une feuille. C'est très utilisé au brevet pour tracer des figures géométriques.
effacer tout
stylo en position d'écriture
répéter 4 fois
avancer de 100 pas
tourner ↻ de 90 degrés
relever le stylo
Ce programme trace un carré de 100 pixels de côté. Le lutin avance de 100 pas puis tourne de 90°, et répète cette opération 4 fois.
répéter n fois . C'est un exercice classique du brevet.🔀 5. Les Conditions — Si / Sinon
La structure conditionnelle permet au programme de choisir entre deux chemins selon qu'une condition est vraie ou fausse. C'est le bloc le plus important au brevet.
Le bloc « Si … alors »
avancer de 10 pas
Le lutin avance uniquement si la touche espace est enfoncée. Si elle n'est pas enfoncée, rien ne se passe.
Le bloc « Si … alors / sinon »
dire "Bravo, tu as gagné !" pendant 2 secondes
sinon
dire "Continue, tu peux y arriver !" pendant 2 secondes
Ici, le programme affiche un message différent selon la valeur du score. Le bloc sinon s'exécute quand la condition est fausse.
Conditions combinées (et / ou / non)
On peut combiner plusieurs conditions avec les opérateurs logiques :
| Opérateur | Bloc Scratch | Signification | Exemple |
|---|---|---|---|
| ET | __ et __ | Vrai seulement si les DEUX conditions sont vraies | touche espace pressée ? ET score > 0 |
| OU | __ ou __ | Vrai si AU MOINS UNE condition est vraie | position en x > 200 OU position en x < -200 |
| NON | non __ | Inverse la condition (vrai ↔ faux) | non (couleur rouge touchée ?) |
si … alors (une seule branche) et si … alors / sinon (deux branches). Quand le sujet demande « que se passe-t-il si la condition est fausse ? », vérifiez s'il y a un bloc sinon. S'il n'y en a pas, la réponse est « rien ne se passe et le programme continue après le si ».🔄 6. Les Boucles — Répéter
Les boucles permettent de répéter un bloc d'instructions sans le recopier plusieurs fois. Scratch propose trois types de boucles :
| Bloc | Comportement | Quand l'utiliser |
|---|---|---|
répéter __ fois | Exécute le contenu un nombre fixe de fois | Quand on sait exactement combien de répétitions on veut (tracer un carré = 4 fois) |
répéter indéfiniment | Exécute le contenu sans jamais s'arrêter (boucle infinie) | Pour un jeu qui tourne en permanence (vérifier en continu si une touche est pressée) |
répéter jusqu'à ce que __ | Exécute le contenu tant que la condition est fausse, s'arrête quand elle devient vraie | Quand on ne sait pas combien de répétitions il faudra (avancer jusqu'à toucher un mur) |
Exemple : dessiner un cercle
effacer tout
stylo en position d'écriture
répéter 360 fois
avancer de 1 pas
tourner ↻ de 1 degré
relever le stylo
En avançant de 1 pas puis en tournant de 1° (et en répétant 360 fois), le lutin trace un cercle. C'est un polygone à 360 côtés, visuellement indiscernable d'un cercle.
Boucles imbriquées
On peut mettre une boucle à l'intérieur d'une autre boucle. C'est utile pour les motifs répétitifs :
effacer tout
stylo en position d'écriture
répéter 6 fois ← boucle externe (6 côtés de l'hexagone)
répéter 4 fois ← boucle interne (carré sur chaque côté)
avancer de 50 pas
tourner ↻ de 90 degrés
tourner ↻ de 60 degrés
Ce programme dessine un hexagone avec un carré sur chaque côté. La boucle interne (4 fois) trace le carré, la boucle externe (6 fois) déplace le lutin au prochain sommet de l'hexagone.
📦 7. Les Variables
Une variable est un espace mémoire qui stocke une valeur (nombre ou texte). On peut la créer, la modifier et la lire à tout moment. C'est indispensable pour les compteurs, les scores, les réponses de l'utilisateur.
Blocs essentiels
| Bloc | Rôle | Exemple |
|---|---|---|
mettre score à 0 | Donne une valeur à la variable (écrase l'ancienne) | Initialiser le score à 0 en début de jeu |
ajouter 1 à score | Augmente la variable de la valeur indiquée | Gagner un point à chaque bonne réponse |
ajouter -1 à score | Diminue la variable (on ajoute un nombre négatif) | Perdre un point à chaque erreur |
montrer la variable score | Affiche la valeur à l'écran | Le joueur voit son score |
Exemple : quiz avec score
mettre score à 0
demander "Combien font 7 × 8 ?" et attendre
si réponse = 56 alors
dire "Bravo !" pendant 2 secondes
ajouter 1 à score
sinon
dire "Perdu ! La réponse était 56." pendant 2 secondes
demander __ et attendre affiche une question et crée un champ de saisie. La réponse de l'utilisateur est stockée dans le bloc spécial réponse (catégorie Capteurs). Attention : la réponse est toujours un texte dans Scratch, mais les opérateurs de comparaison (=, >, <) convertissent automatiquement en nombre quand c'est possible.📨 8. Messages et Clones
Les messages (pour communiquer entre scripts)
Les messages permettent à un script de déclencher l'exécution d'un autre script, même s'il appartient à un lutin différent. C'est le mécanisme de base pour synchroniser plusieurs lutins.
| Bloc | Rôle |
|---|---|
envoyer à tous "nom_du_message" | Envoie un message à tous les lutins. Le script continue immédiatement. |
envoyer à tous "nom_du_message" et attendre | Envoie un message et attend que tous les scripts déclenchés soient terminés avant de continuer. |
quand je reçois "nom_du_message" | Bloc chapeau : le script sous ce bloc s'exécute quand le message correspondant est reçu. |
Les clones (créer des copies du lutin)
Les clones permettent de créer des copies d'un lutin pendant l'exécution du programme. Chaque clone est indépendant et peut avoir son propre comportement. Utile pour les jeux (tirs multiples, ennemis, particules).
| Bloc | Rôle |
|---|---|
créer un clone de moi-même | Crée une copie du lutin actuel |
quand je commence comme un clone | Bloc chapeau : les instructions sous ce bloc s'exécutent pour chaque clone créé |
supprimer ce clone | Détruit le clone (libère la mémoire) |
📝 9. Exercices Type Brevet Corrigés
Énoncé : Écrire un programme Scratch qui trace un triangle équilatéral de côté 150 pas.
Correction :
effacer tout
stylo en position d'écriture
répéter 3 fois
avancer de 150 pas
tourner ↻ de 120 degrés
relever le stylo
Explication : Triangle équilatéral = 3 côtés identiques. L'angle de rotation est 360° / 3 = 120° (c'est l'angle extérieur, pas l'angle intérieur de 60°). C'est le piège classique : on tourne de l'angle extérieur, pas de l'angle intérieur du polygone.
Énoncé : Un programme Scratch demande un nombre à l'utilisateur, le multiplie par 3, ajoute 5, puis affiche le résultat.
demander "Choisis un nombre" et attendre
mettre résultat à réponse
mettre résultat à résultat × 3
mettre résultat à résultat + 5
dire résultat
Questions type brevet :
a) Si on choisit le nombre 4, quel résultat est affiché ? → 4 × 3 + 5 = 17
b) Si on choisit le nombre −2, quel résultat est affiché ? → (−2) × 3 + 5 = −6 + 5 = −1
c) Exprimer le résultat en fonction du nombre de départ x. → 3x + 5
d) Pour quelle valeur de x le résultat est-il égal à 20 ? → 3x + 5 = 20, donc 3x = 15, donc x = 5
Énoncé : Que fait le programme suivant ?
mettre compteur à 0
répéter indéfiniment
si touche flèche droite pressée ? alors
ajouter 10 à x
si touche flèche gauche pressée ? alors
ajouter -10 à x
si bord touché ? alors
dire "Perdu !" pendant 2 secondes
arrêter tout
Correction : Le programme fait déplacer le lutin vers la droite (+10 en x) quand on appuie sur la flèche droite, et vers la gauche (−10 en x) quand on appuie sur la flèche gauche. Si le lutin touche le bord de la scène, il affiche « Perdu ! » et le programme s'arrête complètement. C'est un mini-jeu de déplacement horizontal avec condition de défaite.
Énoncé : Le programme suivant simule un jeu de devinette. Quel est le rôle de chaque partie ?
mettre mystère à nombre aléatoire entre 1 et 100
mettre essais à 0
répéter jusqu'à ce que réponse = mystère
demander "Devine le nombre (1-100)" et attendre
ajouter 1 à essais
si réponse > mystère alors
dire "Trop grand !" pendant 1 seconde
si réponse < mystère alors
dire "Trop petit !" pendant 1 seconde
dire (regrouper "Bravo ! Trouvé en " (regrouper essais " essais"))
Correction : (1) Le programme tire un nombre aléatoire entre 1 et 100 et le stocke dans la variable mystère. (2) Il demande au joueur de deviner le nombre. (3) À chaque tentative, il incrémente le compteur essais et indique si le nombre proposé est trop grand ou trop petit. (4) La boucle continue tant que la réponse n'est pas égale au nombre mystère. (5) Quand le joueur trouve, le programme affiche le nombre d'essais nécessaires.
⚠️ 10. Les Erreurs Fréquentes au Brevet
| Erreur | Explication | Comment l'éviter |
|---|---|---|
| Confondre angle intérieur et extérieur | Pour un triangle équilatéral, on tourne de 120° (extérieur), pas 60° (intérieur) | Retenir : dans Scratch, on tourne toujours de l'angle extérieur = 360° / n |
| Oublier d'initialiser une variable | Si le score n'est pas mis à 0 au début, il garde la valeur de la partie précédente | Toujours écrire mettre variable à 0 après le bloc quand ⚑ est cliqué |
| Confondre « répéter n fois » et « répéter indéfiniment » | L'un s'arrête, l'autre ne s'arrête jamais | Lire attentivement : si c'est « indéfiniment », le programme ne passe jamais aux blocs suivants |
| Mal lire l'ordre des opérations | Dans mettre x à (x + 1) × 3, le +1 est fait AVANT le ×3 | Suivre les blocs de l'intérieur vers l'extérieur, comme des parenthèses |
| Oublier le « et attendre » après « demander » | Sans « et attendre », le programme n'attend pas la saisie et continue | Vérifier que le bloc est bien demander __ et attendre |
| Confondre « si alors » et « si alors sinon » | Sans le sinon, rien ne se passe quand la condition est fausse | Vérifier la forme du bloc : le « si/sinon » a deux creux, le « si » n'en a qu'un |
| Ne pas distinguer « = » et « > » | Au brevet, les conditions score > 10 et score = 10 ont des résultats différents pour score = 10 | > est « strictement supérieur » (10 n'est PAS > 10). Pour ≥, il faut utiliser non (score < 10) |
🐍 11. De Scratch à Python — Tableau de Correspondance
En 3e, on passe parfois de Scratch à Python. Les concepts sont identiques, seule la forme change (blocs visuels → texte). Voici les équivalences :
| Concept | Scratch | Python |
|---|---|---|
| Afficher un texte | dire "Bonjour" | print("Bonjour") |
| Créer une variable | mettre x à 5 | x = 5 |
| Demander une saisie | demander "Ton nom ?" et attendre | nom = input("Ton nom ?") |
| Condition simple | si (x > 10) alors … | if x > 10: |
| Condition avec sinon | si … alors … sinon … | if … : … else: … |
| Boucle fixe | répéter 10 fois | for i in range(10): |
| Boucle conditionnelle | répéter jusqu'à ce que (x = 0) | while x != 0: (attention : logique inversée !) |
| Nombre aléatoire | nombre aléatoire entre 1 et 6 | import random puis random.randint(1, 6) |
| Reste de la division | reste de x / 2 | x % 2 |
| ET logique | __ et __ | __ and __ |
| OU logique | __ ou __ | __ or __ |
répéter jusqu'à ce que (condition) répète tant que la condition est FAUSSE et s'arrête quand elle devient vraie. En Python, while condition: fait l'inverse : il répète tant que la condition est VRAIE. Il faut donc inverser la condition quand on traduit. Exemple : Scratch répéter jusqu'à ce que x = 0 → Python while x != 0:.❓ Questions Fréquentes
Scratch est-il au brevet des collèges ?
Faut-il savoir coder « par cœur » les blocs Scratch ?
Pourquoi tourne-t-on de 120° pour un triangle et pas de 60° ?
tourner de __ degrés fait pivoter le lutin par rapport à sa direction actuelle, c'est-à-dire qu'il tourne de l'angle extérieur du polygone. L'angle extérieur d'un triangle équilatéral est 180° − 60° = 120°. Règle générale : pour un polygone régulier à n côtés, l'angle de rotation = 360° / n. Pour le triangle : 360° / 3 = 120°.Quelle est la différence entre « répéter 10 fois » et « répéter indéfiniment » ?
Répéter 10 fois exécute le contenu exactement 10 fois puis continue avec les blocs suivants. Répéter indéfiniment ne s'arrête jamais — le programme reste dans la boucle pour toujours (sauf si un bloc arrêter tout est déclenché). Les blocs placés après un répéter indéfiniment ne seront jamais exécutés.Comment Scratch gère-t-il les nombres négatifs ?
avancer de -10 pas fait reculer le lutin. ajouter -5 à score diminue le score de 5. Les opérateurs de comparaison fonctionnent aussi : -3 < 2 est vrai. Au brevet, les programmes de calcul avec des nombres négatifs en entrée sont fréquents — c'est un piège classique car les élèves oublient de gérer le signe.Peut-on utiliser Scratch pour le brevet de technologie aussi ?
Où s'entraîner gratuitement avec Scratch ?
📚 Autres cours de technologie
⚡ Chaîne d'énergie et d'information
📊 Algorithmique et algorigrammes
🐍 Introduction à Python
🌐 Réseaux et Internet
📋 Fiche révision techno brevet
📐 Algorithmique Scratch (cours maths)
📐 Tous les cours de maths
