Programmer un flocon de neige en Scratch

Scratch[a] 3.0[b] est un langage de programmation visuel par bloc dédié aux enfants à partir de la 6e1)6e : 11 – 12 ans, fin du cycle 3 de consolidation qui pourront programmer le dessin du flocon de neige de Von Koch.

Flocon de Koch génération 2
Le flocon de neige de Von Koch à la seconde génération

Scratch avec son icône du matou orange est un successeur moderne du langage Logo avec son icône de la tortue, tous les deux issus du MIT2)MIT : Institut de technologie du Massachusetts. Il est installé dans tous les ordinateurs des collèges et lycées de France dans sa version 2.0. Il fait partie de l’épreuve technologique – série générale – du DNB3)DNB : Diplôme National de Brevet.

L’environnement de programmation Scratch

environnement de programmation Scratch 3.0

La procédure DrawFractalVonKochN est ci-dessus paramétrée avec l’argument « 4 » correspondant à la génération souhaitée.

Génération zéro du flocon de neige

Flocon de Koch génération 0
Le flocon de neige de Von Koch à la génération zéro

On peut commencer par la génération « 0 » pour un dessin immédiat d’un triangle équilatéral ayant zéro pointe au milieu de chacun des cotés du triangle.

Première génération du flocon de neige

Flocon de Koch génération 1
Le flocon de neige de Von Koch à la première génération

Incrémenter progressivement jusqu’à par exemple la génération « 4 » pour obtenir une courbe qui pourrait ressembler à la côte de la baie de Saint-Brieuc.

Au-delà de la quatrième génération, le temps de dessin peut être prohibitif à moins de mettre l’interface de Scratch en mode « turbo » c-a-d sans l’animation du matou.

La programmation Scratch du flocon de Koch

programmation du flocon de neige de Von Koch en Scratch

La procédure de dessin du flocon de neige SnowVonKoch s’appelle elle-même selon un procédé algorithmique appelé algorithme récursif qui permet de formuler la solution de façon élégante et courte.

Factorielle numérique récursive

L’exemple typique de fonction mathématique récursive est la factorielle :

factorielle(n) = 1 * 2 * 3 * … * (n - 1) * n

La factorielle peut se définir en fonction d’elle-même :

factorielle(n) = n * factorielle(n - 1)

Cependant il faut définir un critère de fin de la récursion pour éviter un appel infini pour les nombres négatifs :

factorielle(0) = 1

L’implémentation finale introduit la notion de conditionnelle « si » condition « alors » … « sinon » …

factorielle(n) = si n < 1 alors 1 sinon n * factorielle(n - 1)

L’analyse du début de la fonction SnowVonKoch montre un critère de fin analogue :

si generation < 1 alors avancer de la taille souhaitée sinon appels récursifs

Résultat du dessin du flocon de Von Koch

Dessin du flocon de neige de Von Koch génération 4

Le matou Scratch gigote dans tous les sens pour dessiner chaque segment des triangles équilatéraux. A la fin, il dit « miaou ». Il se centre au coeur de la courbe du flocon de neige. Le slogan de la ville de Saint-Brieuc s’affiche sur le fond d’image le Griffon, symbole de la ville.

Le mot scratch a également en anglais une connotation d’éraflure d’où la griffe du chat : je griffe, tu griffes, nous griffons.

Télécharger “Scratch Koch snowflake” KochSnowFlake.zip – Téléchargé 34 fois – 66 KB

Expansion du Scratch par rapport au Logo

Scratch, étant un langage de programmation visuel par block. Il prend plus de place à l’écran que le même code dans le langage textuel plus ancien dénommé Logo inspiré du Lisp.

Scratch est plus simple à apprendre. Encore faut-il bien viser avec le pointeur de la souris pour renseigner les champs des blocs fonctionnels.

En Scratch, l’enfant déplace à la souris des blocs fonctionnels aimantés. Alors qu’en Logo, il faut apprendre à utiliser un éditeur de texte et équilibrer correctement les parenthèses et autres crochets syntaxiques.

Courbe de Von Koch en Logo dans LibreOffice Writer
Flocon de neige de Von Koch génération « 5 » en Logo et sa tortue verte

La complexité de l’algorithme du flocon de neige de Von Koch en Logo est de 50 lignes en 155 mots, soit une page A4.

Le traitement de texte Writer de la suite logiciel gratuite LibreOffice intègre le langage Logo en configurant sa barre d’outil.

Menu "Affichage" > "Barre d'outils" > "Logo"

La première page du document est utilisée pour le dessin par la tortue. Tandis que le code Logo se trouve à partir de la seconde page.

DrawFractalVonKochN 0 300

Le première paramètre de la procédure DrawFractalVonKochN est la génération « 0 » correspondant à un simple triangle équilatéral. L’enfant peut tester jusqu’à la génération « 4 » ou « 5 » s’il est plus patient qu’en Scratch.

Puis le second paramètre est la taille du coté du triangle équilatéral de génération 0.

Le programme se lance en cliquant sur le bouton du triangle vert comme la tortue de la barre d’outils : « Démarrez le programme Logo« 

Télécharger “Flocon de neige de Von Koch en Logo” FloconDeVonKoch.odt – Téléchargé 2 fois – 11 KB

Lien mathématique avec le jeu d’échecs

Programmer un jeu d’échecs est complexe. C’est pourquoi l’enfant peut s’initier à la programmation récursive en faisant dessiner en quelques lignes le flocon de Von Koch par le matou.

Le lien du langage Scratch avec le flocon de Von Koch ou le jeu d’échecs s’inscrit dans la dynamique de l’année des mathématiques 2019-2020, notamment dans l’académie de Reims au sujet du « jeu d’échecs et programmation »[c].

Le club Scratch chess regroupe les ressources concernant le jeu d’échecs et le langage de programmation visuel Scratch.

Voir aussi

Saint-Brieuc chess club does .sb3 from Scratch.

Références

  1. Télécharger la version gratuite de Scratch Desktop 1.2.1 pour Windows fonctionnant hors ligne sans internet.[]
  2. En avant vers Scratch 3.0, Académie d’Aix-Marseille, Prim à bord Eduscol[]
  3. « Schatcher » avec le jeu d’échecs, concours « Ecole sur Échiquier », Boris Raguet, FFE Scolaires[]

Notes   [ + ]

1. 6e : 11 – 12 ans, fin du cycle 3 de consolidation
2. MIT : Institut de technologie du Massachusetts
3. DNB : Diplôme National de Brevet