SunuLab
Notre savoir
CoursAvancé8 min de lecture

Quand un bloc s'appelle lui-même

La récursion : la technique mentalement vertigineuse qui dessine des fractales en 5 blocs.

§1.Une fonction qui s'utilise elle-même

Tu as appris au chapitre 6 qu'une fonction peut en appeler une autre. Voilà l'idée vertigineuse : et si une fonction s'appelait ELLE-MÊME, à l'intérieur de sa propre définition ?

C'est ce qu'on appelle la RÉCURSION. Sur le papier ça semble absurde — comme un chien qui court après sa queue. En pratique, c'est la technique la plus élégante pour dessiner des fractales : des formes où chaque petite partie ressemble au tout.

§3.Anatomie d'une fonction récursive

Le cas de base
Un « si » au début de la fonction : si on est trop petit / trop loin / trop profond, on s'arrête (avec un return, ou simplement rien faire).
Exemple. Si taille < 10 → ne fais rien.
L'appel récursif
On rappelle la fonction avec un paramètre PLUS PETIT (ou plus proche du cas de base).
Exemple. Au lieu d'appeler dessiner(taille), on appelle dessiner(taille × 0.7).
Avant vs Après l'appel
Ce qui est AVANT l'appel récursif s'exécute « à la descente ». Ce qui est APRÈS s'exécute « au retour ». Cette dualité crée les motifs complexes des fractales.

Crée une fonction « branche » avec paramètre « taille ». Dedans : un « si taille < 10 alors return » comme cas de base. Sinon : avancer(taille), tourner 25° droite, APPELER branche(taille × 0.7), tourner 50° gauche, APPELER branche(taille × 0.7), tourner 25° droite, reculer(taille). Puis appelle branche(80) dans ton programme principal.

Chargement de l'atelier de blocs…

§5.Pourquoi ça marche : la pile

Quand branche(80) s'exécute, à un moment elle appelle branche(56). À ce moment, branche(80) est mise EN PAUSE — elle attend que branche(56) finisse. branche(56) appelle branche(39.2), qui appelle branche(27.4)… jusqu'à ce que taille tombe sous 10. Là, la fonction ne se rappelle plus : c'est le cas de base.

À ce moment, on REMONTE : la dernière fonction finit, puis l'avant-dernière reprend, etc. C'est cette « pile d'appels » qui permet à chaque niveau de la fractale de bien revenir à sa position avant de dessiner la branche suivante.

§7.C'est la fin du parcours blocs

Bravo ! Tu as parcouru les 7 chapitres : blocs de base, couleurs, boucles, variables, conditions, fonctions, récursion. Tu maîtrises maintenant l'intégralité de ce que Blockly peut faire pour dessiner.

Prochaine étape suggérée : ouvre l'atelier de blocs sans contrainte (sandbox libre), choisis un dessin dans la galerie, et essaie de le reproduire en blocs. Puis ouvre l'atelier de code pour voir comment les mêmes concepts s'écrivent en JavaScript.

À retenir

  • Une fonction récursive s'appelle elle-même.
  • Toujours un CAS DE BASE qui arrête la récursion — sinon, plantage.
  • Chaque appel doit RÉDUIRE le problème (paramètre plus petit).
  • Idéal pour les fractales : arbre, flocon de Koch, triangle de Sierpiński.
  • Pense-le comme : « pour faire un grand X, fais deux petits X plus loin ».
Mots-clésrécursionfractalearbreauto-similarité