Tortue et L-system

Réécriture par substitution.

Tansformation d'une chaîne.

On dispose d'une chaîne de caractères et on la transforme ainsi : chaque lettre F est remplacée par F+F--F+F.

Si ch='FA+-FB', la chaîne obtenue après transformation est donc la chaîne 'F+F--F+FA+-F+F--F+FB'.

Écrire une fonction :

  • Entrée : une chaîne de caractères.
  • Sortie : la chaîne de caractères transformée suivant le principe précédent.

Plusieurs transformations successives.

On pourra ensuite modifier la fonction en ajoutant un paramètre permettant d'appliquer plusieurs fois de suite la transformation.

Par exemple la chaîne F transformée une fois devient F+F--F+F. Si on la transforme une seconde fois, elle devient F+F--F+F+F+F--F+F--F+F--F+F+F+F--F+F.

Une seule transformation.

Plusieurs transformations.

Le flocon de Von Koch.

On reprend la transformation de l'exercice précédent.

On interprète maintenant une chaîne de caractères, en parcourant ses caractères dans l'ordre, à l'aide d'une tortue de la façon suivante :

  • à chaque lettre F, la tortue avance d'une unité de longueur (dans la direction donnée par sa tête),
  • à chaque signe + rencontré, la tortue tourne sur la gauche de 60 degrés,
  • à chaque signe - rencontré, la tortue tourne sur la droite de 60 degrés.

On part de la chaîne ch='F--F--F', on transforme cette chaîne un certain nombre de fois suivant le processus de transformation de l'exercice précédent. Puis on interprète la chaîne finale suivant le principe exposé ci-dessus.

Programmez...

Un code possible.

Un autre L system.

Cet exercice est très semblable au précédent. Mais on change la règle de transformation de la chaîne et l'interprétation par la tortue.

On dispose d'une chaîne de caractères et on la transforme ainsi : chaque lettre F est remplacée par FF+F+F+F+F+FF.

On interprète maintenant une chaîne de caractères, en parcourant ses caractères dans l'ordre, à l'aide d'une tortue de la façon suivante :
  • à chaque lettre F, la tortue avance d'une unité (dans la direction donnée par sa tête),
  • à chaque signe + rencontré, la tortue tourne sur la gauche de 72 degrés,
  • à chaque signe - rencontré, la tortue tourne sur la droite de 72 degrés.

On part de la chaîne ch='F+F+F+F+F', on transforme cette chaîne un certain nombre de fois suivant le processus de transformation vu plus haut. Puis on interprète la chaîne finale suivant le principe précédent.

Programmez...

Un code possible.