Documentation de Référence
Guide complet du langage Logo VL Advanced.
Syntaxe de base
- Variables : Débutent par
:(ex::x). - Commentaires : Débutent par
//. - Sensibilité : Les commandes sont insensibles à la casse.
↔️ Tortue et Mouvements
| Commande (FR / EN) | Description | Exemple |
|---|---|---|
AV / FD n | Avancer de n pixels. | AV 100 |
RE / BK n | Reculer de n pixels. | RE 50 |
TD / RT angle | Tourner à droite de angle degrés. | TD 90 |
TG / LT angle | Tourner à gauche de angle degrés. | TG 45 |
CT / HT | Cache la tortue (Hide Turtle). | CT |
MT / ST | Montre la tortue (Show Turtle). | MT |
🖍️ Crayon
| Commande (FR / EN) | Description | Exemple |
|---|---|---|
LC / PU | Lève le crayon (ne dessine plus). | LC |
BC / PD | Abaisse le crayon (dessine). | BC |
FCC / SETCOLOR couleur | Fixe la couleur du crayon. | FCC "rouge" |
FTC / SETWIDTH n | Fixe la taille (épaisseur) du crayon. | FTC 5 |
PIXEL x y c | Allume le pixel (x, y) avec la couleur c. | PIXEL 10 10 "bleu" |
VALPIXEL x y | Retourne la couleur du pixel (x, y). | DONNE :c VALPIXEL 0 0 |
Constantes de Couleurs
🖥️ Écran et Position
| Commande (FR / EN) | Description | Exemple |
|---|---|---|
VE / CS | Vide l'écran et réinitialise la tortue. | VE |
NETTOIE / CLEAN | Efface le dessin sans bouger la tortue. | NETTOIE |
FCA / CANVASCOLOR couleur | Fixe la couleur de l'arrière-plan. | FCA "noir" |
FPOS / SETXY x y | Place la tortue à (x, y). | FPOS 100 200 |
FCAP / SETHEADING angle | Définit l'orientation absolue. | FCAP 180 |
ORIGINE / HOME | Retourne au centre (0, 0). | ORIGINE |
POSX / POSY | Retourne la coordonnée X ou Y actuelle. | LOG POSX |
CAP / HEADING | Retourne l'angle actuel de la tortue. | LOG CAP |
DISTANCE / DS x y | Retourne la distance entre la tortue et (x, y). | LOG DISTANCE 0 0 |
VERS / TOWARDS x y | Retourne l'angle nécessaire pour pointer vers (x, y). | FCAP VERS 50 50 |
📐 Formes et Remplissage
| Commande (FR / EN) | Description | Exemple |
|---|---|---|
LIGNE / LINE x1 y1 x2 y2 | Trace une ligne entre deux points. | LIGNE 0 0 100 100 |
RECT x1 y1 x2 y2 | Trace un rectangle défini par ses coins. | RECT -50 -50 50 50 |
ELIP x1 y1 x2 y2 | Trace une ellipse définie par son rectangle englobant. | ELIP -100 -50 100 50 |
CERCLE / CIRCLE r | Trace un cercle de rayon r centré sur la tortue. | CERCLE 75 |
ARC angle r | Trace un arc de cercle. | ARC 90 50 |
RECTANGLE w h | Trace un rectangle de largeur w et hauteur h. | RECTANGLE 120 80 |
ELLIPSE w h | Trace une ellipse de largeur w et hauteur h. | ELLIPSE 100 60 |
POLYGONE / POLYGON n t | Polygone régulier à n côtés de taille t. | POLYGONE 6 50 |
ETOILE / STAR n r1 r2 | Étoile à n branches avec rayons extérieur et intérieur. | ETOILE 5 50 20 |
FCB / FILLCOLOR couleur | Fixe la couleur de remplissage. | FCB "jaune" |
REMPLIS / FILL | Remplit la dernière forme fermée tracée. | REMPLIS |
TAMPON / STAMP | Dessine l'image actuelle de la tortue sur le canevas. | TAMPON |
OPACITE / OPACITY n | Définit la transparence globale (0 à 1). | OPACITE 0.5 |
FLUIDE / SMOOTH | Active l'animation fluide. | FLUIDE |
DEGRADE / GRADIENT type c1 c2 ... | Crée un dégradé (linear/radial). | DEGRADE "linear" "rouge" "bleu" |
🎥 Multimédia et Temps
| Commande (FR / EN) | Description | Exemple |
|---|---|---|
JOUE / LIRESON / PLAYSOUND url | Joue un fichier audio depuis une URL. | JOUE "https://.../son.mp3" |
STOPSON / STOPSOUND | Arrête toutes les lectures audio en cours. | STOPSON |
AFFICHEIMAGE / SHOWIMAGE url x y w h | Affiche une image aux coordonnées et dimensions données. | AFFICHEIMAGE "logo.png" 0 0 100 100 |
LIREVIDEO / AFFICHEVIDEO / SHOWVIDEO url x y w h | Joue une vidéo aux coordonnées spécifiées. | AFFICHEVIDEO "vid.mp4" 0 0 200 150 |
STOPVIDEO | Arrête la lecture de la vidéo en cours. | STOPVIDEO |
PAUSE ms | Met en pause l'exécution pendant ms millisecondes. | PAUSE 1000 |
💬 Texte et Entrées
| Commande | Description | Exemple |
|---|---|---|
POLICE_TAILLE n | Définit la taille de la police pour ECRIS. | POLICE_TAILLE 24 |
POLICE_STYLE s | Style : "g" (gras), "i" (italique), "gi" (les deux). | POLICE_STYLE "gi" |
POLICE_NOM n | Nom de la police (ex: "Arial", "Courier"). | POLICE_NOM "Verdana" |
LOG val / PRINT val | Affiche une valeur dans la console ou le terminal. | LOG "Test" |
MSG texte | Affiche une boîte de message d'alerte. | MSG "Opération terminée" |
ECRIS texte / WRITE texte | Affiche le texte sur le canevas à la position de la tortue. | ECRIS "Bonjour" |
NL / RETOURLIGNE | Passe à la ligne suivante pour la commande ECRIS. | NL |
LIS msg | Demande une saisie texte à l'utilisateur via un prompt. | DONNE :nom LIS "Quel est votre nom ?" |
🧮 Maths et Opérateurs
| Fonction (FR / EN) | Description | Exemple |
|---|---|---|
RACINE / SQRT n | Racine carrée de n. | RACINE 16 (→ 4) |
PUISSANCE / POW a b | a élevé à la puissance b. | PUISSANCE 2 3 (→ 8) |
VALABS / ABS n | Valeur absolue de n. | ABS -10 (→ 10) |
EXP n | Exponentielle de n. | EXP 1 (→ 2.718...) |
LOGN / LN n | Logarithme népérien de n. | LOGN 10 |
ENTIER / INTEGER n | Partie entière (tronquée) de n. | ENTIER 5.9 (→ 5) |
ARRONDI / ROUND n | Arrondi à l'entier le plus proche. | ARRONDI 5.6 (→ 6) |
PLAFOND / CEIL n | Plus petit entier supérieur ou égal à n. | PLAFOND 5.1 (→ 6) |
MIN a b / MAX a b | Minimum ou Maximum entre deux valeurs. | MIN 10 20 (→ 10) |
SIN, COS, TAN, ATAN | Fonctions trigonométriques (angles en degrés). | SIN 90 (→ 1) |
HASARD / RANDOM n | Nombre aléatoire entre 0 et n. | HASARD 100 |
MODULO / MOD a b | Reste de la division de a par b. | MODULO 10 3 (→ 1) |
RVB / RGB r v b | Crée une couleur à partir des composantes Rouge, Vert, Bleu. | FCC RVB 255 128 0 |
PI | Constante mathématique Pi (≈ 3.14159). | LOG PI |
Opérateurs
| Catégorie | Opérateurs | Exemple |
|---|---|---|
| Arithmétiques | +, -, *, /, %, ^ | 10 * 5 |
| Comparaison | ==, !=, >, <, >=, <= | :x > 10 |
| Logiques | || (OU), && (ET), ! (NON) | (:a > 0) && (:a < 10) |
| Affectation | =, +=, -=, *=, /=, ++, -- | :x += 1 |
📦 Variables et Tableaux
Déclaration et Attribution
| Mots-clés | Description | Exemple |
|---|---|---|
DONNE / DECLARE / LET | Définit ou modifie une variable globale ou locale. | DONNE :x 10 |
:nom | Syntaxe pour accéder à la valeur d'une variable. | AV :x |
Tableaux
| Commande (FR / EN) | Description | Exemple |
|---|---|---|
TABLEAU | Crée un nouveau tableau vide. | DONNE :t TABLEAU |
TAB_AJOUTE / AJOUTE tab val | Ajoute une valeur à la fin du tableau. | TAB_AJOUTE :t "Logo" |
TAB_MODIFIE / MODIFIE tab i val | Modifie l'élément à l'index i (commence à 0). | TAB_MODIFIE :t 0 "Nouveau" |
TAB_LIS / LIS tab i | Récupère l'élément à l'index i. | LOG TAB_LIS :t 0 |
TAB_SUPPRIME / SUPPRIME tab i | Supprime l'élément à l'index i. | TAB_SUPPRIME :t 0 |
TAB_TAILLE / TAILLE tab | Retourne le nombre d'éléments dans le tableau. | LOG TAB_TAILLE :t |
TAB_VIDE / VIDE tab | Supprime tous les éléments du tableau. | TAB_VIDE :t |
TAB_TEXTE / TEXTE tab | Convertit le tableau en une chaîne de texte séparée par des virgules. | ECRIS TAB_TEXTE :t |
Conversions de types
| Fonction | Description | Exemple |
|---|---|---|
_NOMBRE val | Convertit une chaîne ou valeur en nombre. | _NOMBRE "42" |
_TEXTE val | Convertit une valeur en chaîne de caractères. | _TEXTE 100 |
_TABLEAU texte | Crée un tableau à partir d'un texte séparé par des virgules (détecte les nombres). | _TABLEAU "1,2,3" |
_S_TABLEAU texte | Crée un tableau de chaînes à partir d'un texte séparé par des virgules. | _S_TABLEAU "a,b,c" |
🔄 Structures de Contrôle
| Structure | Syntaxe | Exemple |
|---|---|---|
| Boucle Répéter | REPETE n [ ... ] | REPETE 4 [ AV 100 TD 90 ] |
| Conditionnelle | SI (condition) [ ... ] SINON [ ... ] | SI (:x > 10) [ AV 10 ] SINON [ RE 10 ] |
| Boucle Tant Que | TANTQUE (condition) [ ... ] | TANTQUE (:i < 10) [ :i++ ] |
| Sélecteur (Switch) | CHOISIS (valeur) [ CASE v1 [ ] CASE v2 [ ] AUTRES [ ] ] | CHOISIS (:c) [ CASE 1 [ AV 10 ] AUTRES [ RE 10 ] ] |
| Contrôle de boucle | STOP (quitter), CONTINUE (sauter) | SI (:err) [ STOP ] |
🏗️ Procédures et Classes
Procédures (Fonctions)
| Élément | Syntaxe / Rôle | Exemple |
|---|---|---|
| Définition | POUR NOM :arg1 :arg2 ... FIN | POUR CARRE :t REPETE 4 [ AV :t TD 90 ] FIN |
| Valeur de retour | RENDS valeur (Retourne une valeur et quitte). | RENDS :x * :x |
Classes (POO)
| Élément | Syntaxe / Rôle | Exemple |
|---|---|---|
| Déclaration | CLASSE Nom [ ... ] | CLASSE Robot [ ... ] |
| Constructeur | constructeur [ ... ] | constructeur [ DONNE ->nom "R2" ] |
| Méthodes | nomMethode [ ... ] | avancer [ AV 50 ] |
| Instanciation | Nom() | DONNE :r Robot() |
🌟 Exemples Pratiques
1. La Fleur Géométrique
Cet exemple utilise des boucles imbriquées pour créer une forme complexe à partir de simples cercles.
VE // Efface l'écran FTC 2 // Épaisseur du trait FCC "violet" // Couleur du trait REPETE 12 [ CERCLE 60 // Dessine un cercle de rayon 60 TD 30 // Tourne de 30 degrés pour le prochain pétale ]
2. Carré Rempli Dynamique
Apprenez à utiliser les couleurs de remplissage et la commande REMPLIS pour colorer vos formes.
VE FCC "noir" FCB "orange" // Définit la couleur de remplissage REPETE 4 [ AV 100 TD 90 ] REMPLIS // Remplit la zone fermée tracée
3. Spirale Mathématique
Une spirale créée en augmentant progressivement la distance parcourue à chaque étape grâce à une variable.
VE DONNE :cote 10 // Initialise la longueur du côté REPETE 50 [ AV :cote TD 91 // Un angle légèrement supérieur à 90 crée la spirale DONNE :cote :cote + 5 // Augmente la longueur à chaque tour ]
4. Arbre Récursif (Fractale)
La récursivité permet de créer des structures fractales comme des arbres de manière très concise.
POUR ARBRE :t SI :t < 5 [ RENDS ] // Condition d'arrêt AV :t // Trace le tronc TG 30 ARBRE :t * 0.7 // Branche gauche TD 60 ARBRE :t * 0.7 // Branche droite TG 30 RE :t // Revient à la base FIN VE LC FPOS 0 , -200 BC ARBRE 100 // Lance la génération
5. Gestion des Tableaux de Données
Exemple complet de manipulation de listes : ajout, modification et affichage de données.
DONNE :notes TABLEAU // Crée un tableau vide TAB_AJOUTE :notes 15 TAB_AJOUTE :notes 18 TAB_AJOUTE :notes 12 // Modifie la première note TAB_MODIFIE :notes 0 20 LOG "Liste des notes : " + TAB_TEXTE :notes LOG "Nombre de notes : " + TAB_TAILLE :notes
6. Polygone avec couleurs dynamiques
Cet exemple montre comment changer la couleur du trait dynamiquement en utilisant l'index de boucle _i0.
VE FTC 5 REPETE 36 [ FCC RVB (_i0 * 7) 100 200 // La couleur change à chaque pas AV 20 TD 10 ]
7. Dessin de texte circulaire
On peut combiner les mouvements de la tortue et l'écriture pour placer du texte de manière artistique.
VE POLICE_TAILLE 20 REPETE 12 [ LC AV 100 BC ECRIS "LOGO" LC RE 100 BC TD 30 ]
8. Utilisation d'une Classe Robot
La programmation orientée objet permet de créer des structures réutilisables avec leurs propres propriétés et comportements.
CLASSE Robot [ constructeur [ DONNE ->c "bleu" ] dessiner [ FCC ->c REPETE 4 [ AV 50 TD 90 ] ] ] DONNE :monRobot Robot() :monRobot.dessiner()
9. Calculatrice Interactive
Utilisez LIS pour demander des nombres à l'utilisateur et effectuez des calculs mathématiques.
DONNE :a _NOMBRE LIS "Premier nombre ?" DONNE :b _NOMBRE LIS "Deuxième nombre ?" DONNE :somme :a + :b MSG "Le résultat est : " + :somme
10. Grille de pixels (Art pixelisé)
La commande PIXEL permet de dessiner point par point, idéal pour des motifs de bas niveau ou des algorithmes de rendu.
VE REPETE 20 [ DONNE :x _i1 * 5 REPETE 20 [ DONNE :y _i0 * 5 SI ((_i0 + _i1) % 2 == 0) [ PIXEL :x :y "noir" ] ] ]
11. Couronne de Polygones
En imbriquant des boucles, on peut créer des motifs répétitifs complexes. Ici, une série d'hexagones disposés en couronne.
VE REPETE 12 [ REPETE 6 [ AV 40 TD 60 ] // Dessine un hexagone LC AV 60 BC // Déplace sans tracer TD 30 // Pivote pour l'hexagone suivant ]
12. Analyse de Texte et Tableaux
Utilisez les fonctions de conversion pour transformer une chaîne de texte en données manipulables.
DONNE :phrase "Code,Art,Maths" DONNE :mots _S_TABLEAU :phrase REPETE TAB_TAILLE :mots [ LOG "Élément " + _i0 + " : " + TAB_LIS :mots _i0 ]
13. Étoiles Aléatoires
Utilisez HASARD et RVB pour générer un ciel étoilé coloré de manière imprévisible.
VE FCA "noir" REPETE 15 [ FCC RVB (HASARD 255) (HASARD 255) 255 LC FPOS (HASARD 400 - 200) (HASARD 400 - 200) BC ETOILE 5 (HASARD 30) (HASARD 10) ]
14. Animation de l'orientation
Ce script montre comment la tortue peut s'orienter vers des points spécifiques du canevas.
VE LC FPOS 150 150 BC FCAP VERS 0 0 // Oriente vers le centre AV DISTANCE 0 0 // Avance jusqu'au centre
15. Visualisation Mathématique (SIN)
Visualisation d'une onde sinusoïdale en déplaçant la tortue sur l'axe X tout en calculant son axe Y.
VE LC FPOS -200 0 BC REPETE 40 [ DONNE :y (SIN (_i0 * 18)) * 50 FPOS (-200 + (_i0 * 10)) :y ]