CoddyRun
Historique

Toutes les versions de CoddyRun

Chaque mise à jour apportée au langage, à l'éditeur et aux modules, de la première version à aujourd'hui. Les mises à jour sont vérifiées automatiquement au lancement de l'application.

28 versions v3.7 actuelle

Série 3.x 8 versions

v3.7 Actuelle

Cette version apporte un interpréteur plus fiable et un outil d’export web entièrement autonome.

Application

  • Console plus lisible pendant les programmes animés

Quand un programme tourne en continu (animation, jeu, pause), la console de CoddyRun n'est plus envahie de messages répétés toutes les fractions de seconde.

Elle affiche seulement l'essentiel : le lancement et la fin du programme, ainsi que les éventuelles erreurs.

Les statistiques (temps d'exécution, nombre de calculs, taille du résultat) restent affichées pour les programmes simples.

Interpréteur

  • Correction d'un blocage sur "Interprétation en cours" : dans certains programmes, la première saisie (demande) n'était plus prise en compte et l'exécution ne reprenait jamais.

Interface

Nouvel outil

  • Construire : Permet d’exporter n’importe quel programme en page web autonome.
v3.6 Obsolète

Cette version apporte de nombreuses améliorations et de nouveaux outils pour rendre votre expérience plus fluide, plus intuitive et encore plus puissante.

Interpréteur

Nouvelle fonctions intégrés

  • centimètre : convertie des centimètre en pixel
  • millimètre : convertie des millimètre en pixel

Interface

Nouvel outil

  • CoddyDraw : dessine à la souris sur une toile (formes, traits, texte, couleurs) et insère directement le code CoddyRun correspondant dans l'éditeur.

CoddyBlock

Glisser-déposer

Pendant un glisser, une étiquette près du curseur annonce ce qui va se passer au lâcher : l'endroit exact (« dans « si », ligne 3 »), « Même place », « Case déjà remplie », « Lâcher pour supprimer » ou « Lâcher ici annule ».

  • Un espace en pointillé s'ouvre à la place exacte où le bloc va se poser, à sa taille réelle.
  • Le bloc qui va recevoir le tien (si, boucle, fonction…) est entouré en pointillé et - sa barre de gauche s'allume. On voit enfin si on dépose dans un bloc ou après lui.
  • Le bloc glisse en douceur jusqu'à sa place. Si on annule, il revient à son point de départ.
  • Une suppression par glisser vers la palette affiche un bouton Annuler.

Placements refusés

Les placements qui n'ont pas de sens sont refusés, avec la raison affichée :

  • retourne hors d'une fonction
  • arrête ou continue hors d'une boucle
  • une fonction ou une classe placée à l'intérieur d'un autre bloc
  • autre chose qu'une variable déposée dans une classe

Raccourcis clavier

  • Maj + glisser Déplace le bloc avec tous ceux qui sont en dessous
  • Alt + ↑ / ↓ Monte ou descend le bloc sélectionné
  • Alt + → / ← Rentre le bloc dans le si ou la boucle au-dessus, ou l'en fait sortir
  • Entrée Ajoute ou retire une ligne vide au-dessus du bloc
  • Suppr (champ vide) Retire le champ : argument, élément de tableau, partie facultative, commentaire, ou un côté d'un calcul (l'autre côté est gardé)
  • Maj + Suppr Retire le champ même s'il est rempli

Blocs

Désactiver un bloc sans le supprimer, depuis le menu du clic droit. Il reste visible, grisé et barré, mais il est ignoré dans le code produit.

  • Bloc Texte : les guillemets ' ou " sont ajoutés automatiquement, et un clic sur le guillemet permet de changer de type.
  • Bloc Tableau [ ] : on ajoute ou retire des éléments avec + et −.
  • Fermeture automatique de ", ' et [ dans les champs des blocs.
  • Palette de couleurs : une pastille à côté de chaque case « couleur » ouvre la palette, avec les familles de couleurs, l'opacité et la saisie hexadécimale.

Lisibilité

  • Les blocs ne se coupent plus en plusieurs lignes, ni dans l'espace de travail, ni dans la palette, ni dans les commentaires.
  • Les suites de +, ×, et & ou s'affichent sur une seule ligne au lieu de s'empiler en cadres imbriqués.
  • Les parenthèses, virgules et crochets reprennent la couleur de leur bloc.
  • Les cadres des expressions imbriquées sont allégés niveau par niveau.

Palette de blocs

  • Titres de catégorie collants, pastille de navigation active pendant le défilement, pastilles plus grandes avec infobulle, navigation au clavier (↑ / ↓), défilement fluide et saut de catégorie corrigé.
  • Dix catégories réorganisées : Fonctions & Procédures, Calculs & comparaisons (sans les appels de fonction), Dessin, une nouvelle catégorie Déboguer en rouge (déboguer, essayer), une catégorie Commentaires & sections, les classes rangées avec les Variables, le bloc appuyer déplacé dans Afficher et demander, et Programme pour le reste.
  • Largeur réglable en tirant sur le bord droit ; double-clic pour revenir à la taille d'origine.

Interface

  • La palette et l'aperçu du code se replient d'un clic sur une flèche, à gauche et à droite de l'espace de travail. Quand la palette est repliée, les pastilles restent visibles et un clic rouvre directement sur la catégorie choisie.

Un compteur affiche le nombre de blocs, les blocs désactivés et le nombre de lignes de code.

  • Le bouton « Aperçu du code » quitte la barre du haut, remplacé par la flèche de droite.
  • Le menu du navigateur au clic droit est désactivé dans l'éditeur, sauf dans les champs de texte.
  • Largeur de palette, zoom et état des panneaux sont mémorisés d'une session à l'autre.
  • Éditeur par blocs
  • Conversion de la sélection.

Aide (F1)

  • Nouvelles sections « Glisser-déposer » et « Placements interdits », avec la légende des couleurs de l'étiquette.
  • Raccourcis regroupés par thème : Modifier, Déplacer, Chercher et afficher, Général.
v3.5 Obsolète

Cette mise à jour ouvre de nouvelles fonctionnalités, dont l’Inspecteur de toile et CoddyBlock.

Correctif

– Le clic est désormais correctement détecté, même lorsque la toile est en cours d’animation.


Nouvelles fonctions

– son : Lecture de fichiers son au format Wav.

– Amélioration de la fonction label_largeur.


Interface

Nouveaux outils :

- Inspecteur de toile : Inspecter, ajuster, mesurer.

- CoddyBlock : Programmer facilement grâce à des blocs.

v3.4 Obsolète

Cette mise à jour introduit de nouveaux mots-clés, enrichit les capacités graphiques et améliore l’interface.


Interpréteur

- Prise en charge des couleurs hexadécimales (#) avec transparence (Alpha) 8 chiffres.


Tableaux - opérateurs composés.

- t[1] ajoute 1 & t[1] soustrait 1 sont désormais valides.

- Il n'est plus nécessaire d'écrire t[1] vaut t[1] - 1.

t est un tableau
t[1] vaut 10
t[1] soustrait 1 // 9
affiche t[1]
t[1] ajoute 1
affiche t[1] // 10

Nouveau mots-clés

- processus : Définit un bloc qui s'exécute en parallèle du programme principal.

- pause : Suspend l'exécution pendant un nombre de millisecondes (1000 = une seconde).

- suspendre : Met un processus en pause.

- reprendre : Relance un processus mis en pause par suspendre.


Nouvelles fonctions intégrées

- paramètre : Enregistre et relit des paramètres conservés.


Interface

- Amélioration de la palette de couleurs.

- Suppression du mini-menu d'Edge, qui apparait au double clique sur la toile.

v3.3 Obsolète

Cette mise à jour étend l’interpréteur, ajoute de nouvelles fonctions graphiques et améliore l’interface.


Interpréteur

- Analyseur syntaxique : Ajout de la prise en charge des mots-clés cliquer et interagir.


Nouveau mot-clé

- interagir : Attend soit un clic sur la toile, soit une touche du clavier.

maToile est une toile
action, x, y est un nombre
interagir maToile, ['z', 's', 'd', 'q'] dans action, x, y
si action = 0  alors
affiche "Clic en "  + x + " ; " + y
sinon
affiche "Touche numéro " + action
fin si

Nouvelles fonctions intégrées

- Flèche : Trace une flèche : une ligne terminée par une pointe au dernier point.

MaToile est une toile
dimension(MaToile, 260, 200)
remplir(MaToile, #1E2430)
// Flèche droite :
flèche(MaToile, 20, 30, 200, 30, #FFFFFF)
// Flèche coudée (un angle droit) :
flèche(MaToile, 20, 60, 120, 60, 120, 140, #E63946, 3)
// Zigzag (plusieurs angles) :
flèche(MaToile, 150, 180, 180, 100, 210, 180, 240, 100, #FFD60A, 2)
affiche MaToile

- Triangle : Dessine un triangle à partir de ses 3 sommets.

MaToile est une toile
dimension(MaToile, 200, 200)
remplir(MaToile, #1E2430)
// Un triangle pointe en haut :
triangle(MaToile, 100, 20, 180, 180, 20, 180, #E63946)
// Un petit triangle rectangle :
triangle(MaToile, 20, 20, 80, 20, 20, 80, #FFD60A)
affiche MaToile

Interface

- Centrage automatique de la toile en mode console élargie.

- Amélioration du moteur de recherche des programmes.

- Mise en valeur du surlignage de la ligne d’erreur pour une meilleure lisibilité.

- Correction des liens dans l’interface : coddyrun.fr/faq & exemples

v3.2 Obsolète

Cette mise à jour apporte des améliorations majeures au moteur et à l’environnement de développement.


Interpréteur

- Optimisation de l'interpréteur : jusqu’à 30 % de gain de performance sur les tâches intensives (animations, 3D, simulations, boucles lourdes).


Nouveau mot-clé

- cliquer : Attend que l'utilisateur clique sur la toile affichée.

tant que choix = 0
affiche maToile
cliquer maToile dans x, y

si clique(x, y, 40, 80, 100, 45) alors
choix vaut 1
fin si
si clique(x, y, 210, 102, 28) alors
choix vaut 2
fin si
fin tant que

Affectation directe dans les propriétés d’objet

classe joueur:
nom est un texte
score est un nombre
fin classe

Jusqu’à présent, la saisie utilisateur devait transiter par une variable temporaire avant d’être assignée à une propriété :

temp est un texte
demande "Ton nom ? " dans temp
joueur.nom vaut temp

Le moteur accepte désormais l’affectation directe dans un champ d’objet, supprimant la variable intermédiaire :

demande "Ton nom ? " dans joueur.nom

Nouvelles fonctions intégrées

- liste_fichiers : Liste les fichiers d'un dossier et remplit un tableau avec leurs chemins complets.

MesFichier est un tableau
liste_fichier('C:\', '.csv', MesFichier)

- clique : Vérifie si un point (x, y), obtenu après un clic (cliquer), se situe dans une zone de la toile.

maToile est une toile
x, y est un nombre
rectangle(maToile, 40, 80, 100, 45, #1976d2)
cliquer maToile dans  x, y

si clique(x, y, 40, 80, 100, 45) alors

Interface

- Correction du positionnement du menu d’auto-complétion.

- Amélioration du panneau "Structure du programme" : vue hiérarchique, filtre et mise à jour en direct.


Nouvelle fonctionnalité

- Ajoutez vos programmes à vos favoris, retrouvez instantanément vos projets en cours, et gérez vos favoris en ajoutant ou en retirant des programmes pour les garder en tête de liste.

v3.1 Obsolète

Une exécution 40× plus rapide, des fonctions plus puissantes, un éditeur boosté et des images ultra-fluides : cette mise à jour fait franchir un cap majeur à l’environnement.


Interpréteur

- Optimisation de l'interpréteur : une vitesse d’exécution 40 fois plus rapide.


Améliorations des fonctions existantes

- svg : Accepte désormais les toiles. En plus d'un fichier .svg ou d'une image importée, on peut lui passer directement une toile.

// On dessine un badge une seule fois...
badge est une toile
dimension(badge, 100, 100)
cercle(badge, 50, 50, 45, #FEF08A)
cercle(badge, 50, 50, 25, #B45309)

// ...puis on le réutilise à plusieurs tailles
planche est une toile
dimension(planche, 300, 120)
remplir(planche, #1E2430)
svg(planche, 20, 35, badge, 50, 50)
svg(planche, 90, 25, badge, 70, 70)
svg(planche, 180, 10, badge, 100, 100)
affiche planche

Interface

Amélioration de l'éditeur :

- Ajout du repliage de code des fonctions et des procédures.

- Ajout d'une recherche rapide directement dans l'éditeur.


- Affichage des images plus fluide, les programmes interactifs gagnent en fluidité et en rapidité.

v3.0 Obsolète

Cette mise à jour apporte une compatibilité 32/64 bits, introduit de nouvelles fonctions, améliore le langage et ajoute l’export des toiles animées en GIF.


Interpréteur

- Déclaration et initialisation en une seule ligne : Il est désormais possible de déclarer une variable et de lui donner sa valeur directement.

x est un nombre vaut 1.0

- L’interpréteur affiche désormais dans la console le nombre de calculs exécutés lors de l’interprétation d’un programme.

- Prise en charge du canal alpha pour le dessin sur toile.


Nouvelles fonctions intégrées

Utilitaire

- tls : Construit une couleur hexadécimale #RRGGBB à partir de la teinte, de la saturation et de la luminosité.

- rgba : Construit une couleur hexadécimale #RRGGBBAA à partir de trois composantes de couleur (rouge, vert, bleu, chacune entre 0 et 255) et d'un canal alpha de transparence.


Améliorations des fonctions existantes

- expression : Retourne désormais les groupes capturés ([1], [2], …) plutôt que les correspondances suivantes.


Nouvelle fonctionnalité

- Export GIF animé : Exportation des toiles animées au format GIF animé.

– Nouveau bouton Quitter : Permet de fermer l’application directement depuis l’interface.

Série 2.x 10 versions

v2.9 Obsolète

Cette mise à jour ajoute de nouvelles fonctions, un système de sections dans l’éditeur, des améliorations d’interface et un interpréteur plus rapide.


Interpréteur

Le moteur d'exécution a été optimisé en profondeur, les programmes réagissent plus rapidement et l’expérience utilisateur gagne en fluidité.


Nouvelles fonctions intégrées

Dessin

- enregistrer : Enregistre une toile dans un fichier .svg sur le disque.

Fichier

- ouvrir : Ouvre un fichier, un dossier ou une URL avec l'application par défaut du système.

Math

- arcsinus : Retourne l'arc sinus de x : l'angle (en radians) dont le sinus vaut x.

- arccosinus : Retourne l'arc cosinus de x : l'angle (en radians) dont le cosinus vaut x.

- radians : Convertit un angle exprimé en degrés en radians.

- hypoténuse : Retourne la longueur de l'hypoténuse d'un triangle rectangle de côtés a et b

Dictionnaire

- fusionner : Fusionne deux dictionnaires en un nouveau.

Utilitaire

- chrono : Retourne le temps courant en millisecondes (haute résolution).


Interface

- Demande : nouvelle case « Mode multiligne » pour passer d'un champ simple à une zone de texte (Ctrl+Entrée pour valider).


Nouvelle fonctionnalité dans l'éditeur de code

- Ajouter des sections : préfixez une ligne par @ suivi d'un titre pour marquer une section de votre code (ex. @ Déclaration des variables).

- Nouveau bouton Sections dans la barre de l'éditeur, à côté de la structure du programme : il ouvre un panneau listant toutes vos sections avec leur numéro de ligne.

- Navigation rapide : un clic sur une section déplace le curseur à la ligne concernée.

- Coloration dédiée des lignes de section dans l'éditeur pour les repérer d'un coup d'œil.

v2.8 Obsolète

Cette mise à jour introduit le type dictionnaire, de nouvelles fonctions intégrées et plusieurs améliorations de l’interface.


Interpréteur

Nouveau type : dictionnaire

CoddyRun prend désormais en charge le type dictionnaire, qui associe des clés (texte) à des valeurs.

Dico est un dictionnaire
Dico vaut ['nom': 'Jean', 'age': 25]
// Lire une valeur par clé
affiche Dico['nom'] // Jean
affiche Dico['age'] // 25
// Ajouter / modifier une clé
Dico['ville'] ajoute 'Paris'
Dico['age'] vaut 26
// Supprimer une clé
Dico supprime 'nom'
// Nombre de clés
affiche longueur(Dico) // 2
// Tester l'existence d'une clé
affiche contient(Dico, 'ville' ) // vrai
// Parcourir les clés
Liste est un tableau
Liste vaut clés(Dico)
pour i de 0 à longueur(Liste) - 1
affiche Liste[i] + ' = ' + Dico[Liste[i]]
fin pour

Nouvelles fonctions intégrées

- clés : Retourne un tableau contenant toutes les clés d'un dictionnaire, dans leur ordre d'ajout.


Interface

- Ajout d'une nouvelle fonctionnalité "Rejouer l’animation"

- Ajout d'une pastille d'aperçu de couleur au survol d'un code hexadécimal dans l'éditeur.

- Ajout d'un écran d'alerte en cas de déconnexion du serveur.

- Recherche d'aide améliorée : insensible aux accents et aux fautes de frappe, résultats classés par pertinence et étendus aux définitions et exemples.

- Coloration automatique des noms de fonctions et procédures déclarées.

v2.7 Obsolète

Cette version boostée de CoddyRun, avec de nouvelles fonctions graphiques, un vrai type image, un contrôle clavier instantané et un interpréteur nettement plus rapide.


Nouvelles fonctions intégrées

- icône : Dessine une icône Glyph (Icônes Segoe MDL2 Assets) sur une toile à partir d'un code hexadécimal Unicode.

- rgb : Construit une couleur hexadécimale #RRGGBB à partir de trois composantes numériques : rouge, vert et bleu.

- svg : Importe le contenu d'un fichier SVG du disque et le dessine dans la toile.

- contour : Active un contour (une bordure) appliqué à toutes les formes pleines dessinées sur la toile.


Evolution des fonctions intégrées

- importer : La fonction sait désormais charger les fichiers .svg et renvoie directement une variable de type image, prête à être dessinée avec svg.

- label : La fonction accepte désormais un 7ᵉ argument optionnel angle (de -180 à 180°) permettant de faire pivoter le texte autour de son point d'ancrage (x, y). Les appels existants restent inchangés : sans angle précisé, le texte s'affiche à l'horizontale comme avant.


Interpréteur

Nouveau type : image

CoddyRun dispose désormais d'un véritable type image, au même titre que nombre, texte, toile, etc. Il permet de stocker un dessin vectoriel SVG dans une variable et de le réutiliser autant de fois que nécessaire.

vect est une image
vect vaut importer('C:\images\logo.svg')
// Dessiner l'image (position 20,20 puis taille 200x200)
svg(toile1, 20, 20, vect, 200, 200)

Nouveau mot-clé : appuyer

- Capte les touches du clavier en direct pour créer des déplacements et des contrôles interactifs.

action est un nombre
appuyer ['z', 's', 'd', 'q'] dans action
si action = 1 alors
affiche 'Avancer'
sinon si action = 2 alors
affiche 'Reculer'
sinon si action = 3 alors
affiche 'Droite'
sinon si action = 4 alors
affiche 'Gauche'
fin si

Classe

- Les classes acceptent désormais des champs de type toile et image, au même titre que nombre, texte, booléen, tableau, enregistrement, date et heure.


Optimisation de l'interpréteur

- Le moteur d'exécution a été optimisé en profondeur. Les programmes comportant des boucles, des appels de fonctions ou des animations s'exécutent désormais plus rapidement et plus fluidement.


Interface

Suppression du bot d'assistance

- Le bot d'assistance a été retiré afin d'optimiser l'application. Il est remplacé par une FAQ utilisateur désormais disponible en ligne : https://coddyrun.fr/faq/


Nouvelle fonctionnalité : Icônes

- Extension du menu contextuel avec un outil dédié à l’insertion des icônes Segoe MDL2 Assets.

v2.6 Obsolète

Cette mise à jour apporte l’effacement et l’animation des toiles, modernise l’interface et renforce la fluidité.


Nouvelles fonctions intégrées

- effacer : Efface tout le contenu dessiné sur une toile.

- animation : Anime une suite d'images de toile stockées dans un tableau.

MaToile est une toile
tab est un tableau
x, i est un nombre
dimension(MaToile, 200, 120)
x vaut 20
pour i de 1 à 5
rectangle(MaToile, x, 50, 20, 20, #E63946)
tab ajoute MaToile
effacer(MaToile)
x vaut incrément(x, 30)
fin pour
animation(tab, 100, 0) // 100 ms, sans boucle

Interface

Structure du programme : tri des entrées par type

- Les fonctions, procédures et variables sont désormais regroupées par type dans le panneau « Structure du programme »


Menu de "choix" plus clair et agréable

- Chaque option se sélectionne d'un simple clic, se navigue au clavier avec les flèches, et l'option active est mieux mise en évidence.


Zone de saisie "demande"

- La zone de saisie est maintenant encadrée avec un halo bleu au focus.

- Ajout d'un bouton « Entrée » cliquable.


Bouton Stop dans la console étendue

- En mode console étendu, un bouton Stop apparaît maintenant dans la barre d'outils.


Retrait de l'optimisation automatique

- À l'usage, le regroupement des déclarations de variables ajoutait de la complexité au programme sans réel gain en contrepartie : le code optimisé devenait parfois moins clair à lire, et la logique de transformation alourdissait l'ensemble.

v2.5 Obsolète

Cette version ajoute de nouvelles fonctions pour manipuler les heures, corrige le formatage des nombres décimaux et rend les programmes interactifs nettement plus rapides et plus fluides.


Nouvelles fonctions intégrées

- seconde_de : Retourne la partie secondes d'une variable heure (0 à 59).

- ajouter_minutes : Ajoute (ou soustrait si négatif) un nombre de minutes à une heure.

- ajouter_heures : Ajoute (ou soustrait si négatif) un nombre d'heures à une heure.


Interpréteur

Optimisation majeure de l'interpréteur.

Les programmes interactifs, surtout les jeux ou ceux qui posent plusieurs questions, sont désormais beaucoup plus rapides : ils ne redémarrent plus à chaque réponse et reprennent immédiatement là où ils s’étaient arrêtés.

- Rapidité accrue — Fin des redémarrages inutiles.

- Exécution fluide — Pause, réponse, reprise instantanée.


Interface

Correction du formatage des nombres décimaux.

La fonction d'indentation automatique traitait toute virgule comme un séparateur d'arguments et ajoutait un espace après.

Les nombres décimaux écrits à la française (1,3) étaient donc altérés au reformatage.


Nouvelle fonctionnalité

Rechercher/Remplacer : trouvez une occurrence depuis la position du curseur et remplacez dans tout le code en un clic, directement depuis le menu contextuel de l'éditeur.

v2.4 Obsolète

Cette version de CoddyRun introduit l’opérateur ^, une fonction label plus flexible, les histogrammes, de nouveaux outils graphiques et des sessions désormais permanentes.


Sécurité & serveur

À partir de cette version 2.4, votre session CoddyRun ne se ferme plus automatiquement.

Auparavant, une session pouvait expirer après une période d'inactivité, ce qui vous déconnectait et interrompait votre travail.

Ce délai a été supprimé : une fois connecté via « Go ! CoddyRun », vous restez authentifié tant que le serveur tourne, sans compte à rebours ni déconnexion surprise.


Ce qui change concrètement :

- Plus de minuteur de session à l'écran.

- Plus de déconnexion automatique après quelques minutes sans activité.

- L'authentification reste identique : cliquez sur « Go ! CoddyRun » pour ouvrir votre session.


Nouvelles fonctions intégrées

Gestion de la toile :

- histogramme : Dessine un histogramme (diagramme en barres) sur la toile.

- dégradé : Remplit toute la toile avec un dégradé horizontal (de gauche à droite) entre plusieurs couleurs.

- label_largeur : Renvoie la largeur estimée en pixels d'un texte affiché avec label.

- label_hauteur : Renvoie la hauteur estimée en pixels d'une ligne de texte affichée avec label.


Amélioration de la fonction label : la taille du texte

La fonction label accepte désormais un paramètre optionnel pour choisir la taille du texte écrit sur une toile.

label(MaToile, 20, 30, 'Petit texte', #FFFFFF) // taille par défaut
label(MaToile, 20, 90, 'Grand !', #FFD60A, 40) // taille personnalisée

Interpréteur

Prise en charge de l'opérateur exposant ^

- L’interpréteur reconnaît désormais le symbole ^ pour effectuer une opération de puissance, sans qu’il soit nécessaire d’utiliser la fonction puissance().

affiche 2 * 3  ^ 2 // 18

Interface

- Mise à jour de l'aide hors ligne.

v2.3 Obsolète

Cette version marque une avancée majeure de CoddyRun, enrichissant le langage avec le nouveau type toile et une large gamme de fonctions graphiques dédiées au dessin vectoriel.


Interpréteur & Langage

Nouveau type : toile

- Le type toile représente désormais une surface de dessin vectoriel, permettant la création d’images programmées directement dans CoddyRun.

- Il devient la base de toutes les nouvelles fonctions graphiques.


Nouvelles fonctions intégrées

Gestion de la toile :

- dimension : Définit la largeur et la hauteur de la toile

- remplir : Remplit toute la toile avec une couleur.

- rectangle : Dessine un rectangle plein.

- rectangle_arrondi : Rectangle aux coins arrondis.

- cercle : Dessine un cercle plein.

- ellipse : Dessine une ellipse pleine.

- polygone : Dessine un polygone en reliant une suite de points.

- arc : Dessine un secteur de disque (type “part de camembert”).

- ligne : Trace une ligne entre deux points.

- pixel : Colore un pixel unique.

- courbe : Trace une courbe en reliant une suite de points par segments.

- grille : Trace un quadrillage sur toute la toile.

- label : Écrit du texte sur la toile.


Fonctions utilitaires :

- vers_hexadécimal : Convertit un entier en sa représentation base 16.

- vers_décimal : Convertit un texte binaire, octal ou hexadécimal en décimal.


Interface

- Corrections de quelques bugs mineurs.

- Mise à jour de l'aide hors ligne.

- Mise à jour du Bot d’assistance (Base de connaissances).


Nouvelle option : Adapter les toiles à l'écran

- Cette option ajuste automatiquement l’image lorsqu’elle dépasse la taille de la console.

v2.2 Obsolète

Cette version marque une évolution majeure de CoddyRun, offrant une expérience plus intuitive, plus performante et encore mieux adaptée aux besoins des utilisateurs.


Interpréteur

Validation renforcée des noms de variables et paramètres

- Les identifiants ne peuvent plus utiliser un nom de type réservé : nombre, texte, booléen, tableau, enregistrement, date, heure

- Cela évite les ambiguïtés et renforce la sécurité du code.


Indexation des textes

- La notation t[n] retourne désormais le caractère à la position n dans une chaîne.

t est un texte
t vaut 'CoddyRun'
Affiche t[1]

Nouvelle fonction intégrée

- supprimer : Supprime le caractère situé à une position donnée dans un texte.


demande : expressions et concaténation

Le message de demande accepte maintenant les expressions et la concaténation avec "+".

demande "Combien vaut √" + carreQuestion + " ? " dans reponse

Interface

Bot d’assistance CoddyRun

- Un assistant intégré répond directement à vos questions sur le langage CoddyRun (syntaxe, mots-clés, fonctions, exemples)


Animation améliorée de la console

- Mise en place progressive d'une présentation visuelle, ligne par ligne, lettre par lettre.


Nouvelle option : Élargir à l’exécution

- Cette option agrandit automatiquement la console lors de l’exécution du programme pour une meilleure lisibilité.

v2.1 Obsolète

Cette nouvelle version apporte de nombreuses améliorations pour rendre votre expérience plus fluide, plus fiable et plus puissante.


Gestion centralisée des projets

- Tous vos projets CoddyRun sont maintenant regroupés dans un seul fichier, organisés en deux catégories :

- Mes programmes : vos projets complets

- Ma bibliothèque : vos extraits réutilisables


Interface

- Correction d’un problème où l’optimiseur supprimait parfois une variable encore utilisée.

- Ajout de la détection des déclarations de variables dans la fenêtre « Structure du programme ».

- Mise à jour de la liste des emojis.

- Mise à jour de l'aide hors ligne.


Interpréteur

- Validation renforcée des noms de variables et constantes pour éviter les conflits avec les mots réservés, fonctions natives ou fonctions utilisateur.

- Vérification des noms de paramètres avec messages d’erreur clairs en cas de doublon ou de nom interdit.

- Prise en charge des comparaisons textuelles (« plus grand que », « égal à », « différent de »…).

si age plus grand ou égal à 18 alors
affiche 'Majeur'
fin si
v2.0 Obsolète

CoddyRun franchit un nouveau cap avec cette version 2.0. L’interpréteur gagne en expressivité, en sécurité et en confort d’utilisation, tandis que de nouvelles fonctions enrichissent les possibilités offertes aux utilisateurs.


Nouvelles fonctions intégrées

Tableaux

- assembler : Regroupe plusieurs tableaux élément par élément.

Mathématiques

- évaluer : Interpréter une expression mathématique écrite en texte et en fournir le résultat numérique.

affiche évaluer ('25,8 * (8 + 2,2)') // 263,16

Interpréteur

- Support de la virgule comme séparateur décimal : Les nombres décimaux peuvent désormais s'écrire indifféremment avec un point ou une virgule : 3.14 ou 3,14 sont tous deux acceptés et interprétés comme la même valeur.

- Guillemets pour les textes : Les textes peuvent désormais s'écrire indifféremment avec des apostrophes ou des guillemets : 'CoddyRun' ou "CoddyRun" sont tous deux acceptés et interprétés comme la même valeur.

- Dépassement numérique : Ajout d'un garde-fou, tout nombre dépassant 2^53 lève maintenant une erreur au lieu de produire un résultat silencieusement faux.

- Tableaux littéraux : Il est désormais possible d'affecter directement une liste de valeurs à un tableau.

notes est un tableau
notes vaut [12, 15, 8, 19, 14]

Nouveau mot-clé

classe : Définit un modèle nommé regroupant plusieurs champs typés.

classe joueur:
nom est un texte
score est un nombre
vie est un nombre
fin classe
joueur.nom vaut 'Alice'
joueur.score vaut 100
joueur.score ajoute 50
affiche joueur.nom + ' : ' + joueur.score

Série 1.x 10 versions

v1.9 Obsolète

Cette version consolide la fiabilité de l’interpréteur, améliore la lisibilité du débogage et enrichit CoddyRun avec un ensemble étendu de nouvelles fonctionnalités.


Nouvelles fonctions intégrées

Utilitaires

- vers_date : Convertit un texte au format jj/mm/aaaa en une valeur de type date.

- vers_heure : Convertit un texte au format hh:mm:ss en une valeur de type heure.

- vers_type : Convertit une valeur vers le type demandé.

Texte

- similaire : Compare deux textes et renvoie vrai si leur similarité atteint au moins x%.

affiche similaire ('chat' , 'chien', 0.7) // faux

Évolution de couleur()

La fonction couleur() accepte désormais plusieurs couleurs sur une même ligne. En plus du mode classique (coloration des lignes suivantes), on peut maintenant colorer directement un texte

affiche couleur(#DC2626, 'Bonjour ! ') + couleur(#2563EB, 'le monde')

Améliorations du serveur local

Nouvelle API serveur

- Les options de l'interface sont désormais enregistrées côté serveur.

Amélioration des performances

- Les fichiers de l'interface sont désormais optimisés et compressés avant l'envoi.

- Les programmes interactifs (demande/choisir) n'affichent plus que le dernier écran à chaque tour, supprimant le ralentissement qui s'accumulait au fil du programme.


Interpréteur

- Messages d'erreur de syntaxe plus clairs : les codes internes (ex. « Token attendu 64, obtenu "EOL" ») sont remplacés par des descriptions en français (ex. « Élément attendu : ")", mais trouvé : une fin de ligne »).

- Protection contre la récursivité infinie : L’interpréteur détecte et bloque les appels récursifs sans fin.

- Littéraux Unicode U+XXXX : CoddyRun reconnaît désormais la notation Unicode hexadécimale directement dans le code source.


Nouveau mot-clé

- html() : Affiche du HTML basique (h1 .. h6, a, img, ul, li, strong, em) directement dans la console.


Interface

Nouveau sous-menu Édition : Copier, Coller, Couper, Tout sélectionner.

Nouveau sous-menu Outils :

- Sélecteur d’emojis par catégorie

- Palette de couleurs (insertion de couleur(#RRGGBB))

- Table ASCII (32–126)

- Symboles mathématiques (opérateurs, relations, logique, grec, flèches)


Optimisation du code

- L’outil d’optimisation affiche désormais le détail complet : variables supprimées, regroupements, et emplacement exact des modifications.

v1.8 Obsolète

Cette mise à jour renforce la stabilité de l’interpréteur, clarifie l’expérience de débogage et enrichit CoddyRun d’un large ensemble de nouvelles fonctions prêtes à l’emploi.


Corrections

- Conversion ASCII réparée : #39 et autres codes renvoient à nouveau le bon caractère.

- Correction de l'alignement du curseur avec l'option retour à la ligne activée.

- Divers ajustements et améliorations de l’interface.


Nouveau mot-clé

- déboguer : Un mot-clé dédié pour afficher des messages de diagnostic sans polluer le résultat principal.

- choisir : Affiche une liste d'options cliquables dans la console.


Nouvelle option : Card de débogage

- Active ou désactive l’affichage d’une card regroupant tous les messages envoyés via déboguer.


Nouvelles fonctions intégrées

Fichier

- sauvegarder : écrit un texte dans un fichier .txt ou .csv.

- fichier_existe : vérifie l’existence d’un fichier.

- ajouter_ligne : ajoute une ligne à la fin d’un fichier sans l’effacer.

- télécharger : télécharge un fichier depuis une URL HTTPS et le sauvegarde localement.

Texte

- retirer : supprime toutes les occurrences d’un motif.

- uid : génère un identifiant unique aléatoire.

- compter_mots : compte le nombre de mots dans un texte.

Mathématiques

- pourcentage : Retourne le % que représente valeur sur total.

- arrondi_supérieur : Retourne le plus petit entier supérieur ou égal à x (plafond).

- arrondi_inférieur : Retourne le plus grand entier inférieur ou égal à x (plancher).

- signe : Retourne 1 si le nombre est positif, -1 s'il est négatif, 0 s'il est nul.

- factorielle : Retourne la factorielle d'un entier positif (n! = 1 × 2 × … × n).

- pgcd : Retourne le plus grand commun diviseur (PGCD) de deux entiers.

Tableaux

- somme : Retourne la somme de tous les éléments d'un tableau de nombres.

- moyenne : Retourne la moyenne de tous les éléments d'un tableau de nombres.

- fusionner : Retourne un nouveau tableau contenant tous les éléments de deux tableaux mis bout à bout.

- médiane : Retourne la médiane d'un tableau de nombres (valeur centrale).

- index_de : Cherche une valeur dans un tableau et retourne sa position (0 si absente).

- intervalle : Génère un tableau d'entiers consécutifs de début à fin inclus.

Utilitaires

- est_vide : Retourne vrai si le texte, le tableau ou l'enregistrement est vide.

- défaut : Retourne la valeur par défaut correspondant au type de la variable.

Date & Heure

- jour_semaine : Retourne le numéro du jour dans la semaine (norme ISO).

- année_de : Retourne l'année d'une date sous forme de nombre.

- mois_de : Retourne le numéro du mois d'une date (1 à 12).

- jour_de : Retourne le numéro du jour dans le mois d'une date (1 à 31).

- heure_de : Retourne la partie heures d'une variable heure (0 à 23).

- minute_de : Retourne la partie minutes d'une variable heure (0 à 59).

- ajouter_jours : Ajoute (ou soustrait si négatif) un nombre de jours à une date.

- format_date : Affiche une date selon un motif personnalisé (jj, mm, aaaa, hh, nn, ss).

- semaine_de : Retourne le numéro de la semaine dans l'année (norme ISO 8601).

- est_bissextile : Retourne vrai si l'année est bissextile.

- ajouter_mois : Ajoute (ou soustrait si négatif) un nombre de mois à une date.

- ajouter_annees : Ajoute (ou soustrait si négatif) un nombre d'années à une date.


Amélioration interface

- La zone de saisie a été entièrement repensée. Les interactions utilisateur se font désormais directement dans la console, offrant une expérience plus naturelle et conforme au fonctionnement d’un terminal réel.

v1.7 Obsolète

Cette mise à jour affine l'expérience utilisateur, renforce la robustesse de l'interpréteur et pose les bases solides des fonctionnalités à venir.


Amélioration & Nouvelles fonctions intégrées

- importer : Prise en charge des URLs (https://) — extraction du contenu d'une page web directement depuis le code.

- expression : Recherche d'un motif (expression régulière) au sein d'un texte.


Interface

Contrôle de l'exécution via les numéros de ligne :

- Clic simple → Ligne ignorée : la ligne est sautée lors de l'exécution.

- Double-clic → Point d'arrêt : l'exécution se met en pause juste avant cette ligne.


Bouton « Agrandir la console » : redimensionnez la console en un clic.

Fermeture automatique des symboles : les paires [] et () se complètent automatiquement à la saisie.

Lecture du code : fonctionnalité améliorée.

Menu contextuel : intégration d'une palette de couleurs.


Interpréteur

- Nouveau mot-clé couleur() : permet de modifier la couleur du texte affiché dans la console.

- Commentaires multilignes : prise en charge des blocs de commentaires délimités par { }.

v1.6 Obsolète

Cette mise à jour consolide les fonctionnalités existantes, améliore la stabilité du système et prépare le terrain pour les prochaines évolutions majeures du projet.


Corrections

- Correction de la fonction intégrée décimal(x, 2) - plus de valeur incohérente du type 16288,9500000000007

- Correction de la procédure tri_insertion de la bibliothèque CoddyRun.


Nouveautés

Menu contextuel :

- Enregistrer la sélection : enregistrer uniquement la portion de code sélectionnée dans un fichier *.CoddyRun.


Interpréteur

- Amélioration de la vitesse de traitement.

- Optimisation générale des performances.


Interface

- Ajout d’un message de confirmation avant la suppression de l’éditeur.

- Ajout d’un message de confirmation avant l’ouverture d’un programme si l’éditeur n’est pas vide.

- Mise à jour et optimisation des fonctions et procédures de la bibliothèque CoddyRun.

- Mise à jour des emojis : actualisation et enrichissement de la liste des emojis.


Nouvelles fonctions intégrées

Tableaux

- trier : tri d’un tableau en ordre croissant ou décroissant.

- unique : suppression des doublons

Texte

- chiffres : récupére uniquement les caractères numériques présents dans un texte.

- lettres : récupérer uniquement les caractères alphabétiques présents dans un texte.

- normaliser : supprime les accents et caractères spéciaux d'un texte en les remplaçant par leur équivalent ASCII.

- importer : lecture du contenu d’un fichier txt ou csv.


Syntaxe

- Prise en charge des apostrophes doublées dans les chaînes de caractères : il suffit désormais de doubler l’apostrophe pour l’afficher.

affiche 'C''est l''été !'
v1.5 Obsolète

Cette mise à jour a été pensée pour améliorer l’expérience au quotidien, tout en ouvrant la voie à des outils plus professionnels comme les points d’arrêt, l’analyseur syntaxique et l’optimiseur de code.


Corrections

- Lors du chargement d’un fichier, la barre de défilement de l’éditeur se repositionne désormais correctement en haut.

- En mode retour à la ligne, les mots ne sont plus coupés au milieu d’une ligne.


Nouveautés

Menu contextuel :

- Rechercher : lance une recherche à partir du mot sélectionné dans l’éditeur.

- Basculer en commentaire : commente/décommente la ligne où se trouve le curseur.

- Emojis : ouvre un sélecteur d’emojis.


Coloration syntaxique : prise en charge des littéraux numériques, y compris les valeurs hexadécimales.

Mode plein écran : permet d’étendre l’éditeur en plein écran en masquant la console.

Structure du programme : affiche la liste de toutes les fonctions et procédures déclarées dans le programme.


Options

- Suppression du système de LOG pédagogique (explication pas à pas).


Nouvelles fonctionnalités

- Points d’arrêt

- Analyseur syntaxique

- Optimiseur de code

v1.4 Obsolète

Cette mise à jour apporte de nouvelles fonctionnalités pédagogiques, des améliorations de l’interpréteur et plusieurs évolutions techniques visant à rendre CoddyRun plus expressif, plus lisible et plus agréable à utiliser.


Fiabilité renforcée

- Sauvegarde automatique à l’expiration de session : le code est désormais exporté en .CoddyRun, évitant toute perte de travail.

Personnalisation du timeout d'exécution

- Arrêt automatique des interprétations longues : toute exécution dépassant x minutes est stoppée pour prévenir des calculs excessifs.

- Il est désormais possible de définir la durée maximale d'exécution d'un programme interprété (en minutes) via un paramètre de lancement. (exemple : CoddyRun.exe --stopping=5)


Langage plus clair et plus cohérent

- Correction d’un bug où # et autres caractères spéciaux étaient mal interprétés dans les chaînes de caractères.

- Correction de l’indentation des instructions sinon si, désormais alignées correctement avec le si initial.

- Amélioration du formatage du code : Correction des espaces avant les commentaires //, Réduction automatique des lignes vides consécutives.


Nouveautés pédagogiques

Instruction SELON / CAS multi-valeurs

- Possibilité de regrouper plusieurs valeurs dans un même cas à l’aide de virgules.

selon x
cas 1, 2, 3, 4 :
affiche 'ok'
fin selon

Instruction SELON / CAS avec plages de valeurs

- Possibilité d’utiliser des plages de valeurs dans un cas grâce au mot‑clé a (ou à).

selon x
cas 1 a 4 :
affiche 'x est compris entre 1 et 4'
cas 6, 8 a 10 :
affiche 'autre plage'
sinon selon :
affiche 'hors plage'
fin selon

Nouvelles fonctions intégrées

- Mathématiques : décimal, sinus, cosinus, tangente, logarithme, pi

- Texte : majuscule_initiale

- Tableaux : joindre

- Logique : pair, impair


Ajout d'un menu contextuel (clic droit) dans l'éditeur de code

- Couper

- Copier

- Coller

- Tout sélectionner

- Formater le code

v1.3 Obsolète

Cette mise à jour apporte de nouvelles fonctionnalités pédagogiques, des améliorations de l’interpréteur et plusieurs évolutions techniques visant à rendre CoddyRun plus expressif, plus lisible et plus agréable à utiliser.


Nouvelles fonctionnalités

Lecture du code

- CoddyRun intègre désormais une fonctionnalité de lecture explicative du code.

- Cette fonction analyse le programme ligne par ligne et le reformule en langage naturel, afin d’en faciliter la compréhension.

Compteur de session en temps réel

- Ajout d'un compteur de session en temps réel dans la barre d'état.


Sécurité & serveur

Personnalisation de la durée de session

- Il est désormais possible de définir la durée de session (en minutes) via un paramètre de lancement. (exemple : CoddyRun.exe --session=60)

Démarrage automatique

- Ajout de la commande --start : démarre automatiquement le serveur et ouvre le navigateur au lancement de l'application.


Langage & exécution

Tableaux multi-dimensionnels

- CoddyRun prend désormais en charge l’accès et l’affectation multi-dimensionnels dans les tableaux.

Ce qui est nouveau :

// Lecture d’un élément 2D
affiche t[0][1]
// Affectation d’un élément 2D
t[0][1] vaut 99

Cette évolution permet :

- l’enseignement des matrices

- les boucles imbriquées

- les algorithmes 2D (tableaux, grilles, cartes, etc.)


Codes ASCII dans les expressions

- Ajout du support des codes ASCII dans les expressions.

- Un code de la forme #nombre est interprété comme un caractère texte.

affiche 'jusqu' + #39 + 'au plus profond des astres'

Nouvelle fonction : taille

- Cette fonction permet de définir ou modifier la taille d’un tableau.

- Il agit directement sur le tableau passé en paramètre et ajuste dynamiquement le nombre d’éléments.

taille(tableau, n)

Comportement :

Si "n" est supérieur à la taille actuelle :

- le tableau est agrandi

- de nouvelles cases sont créées avec une valeur par défaut

Si "n" est inférieur :

- les éléments excédentaires en fin de tableau sont supprimés

- si le tableau est vide, il est automatiquement initialisé


Valeurs hexadécimales

- Ajout du support des valeurs hexadécimales pour l’écriture des nombres.

- Un nombre précédé du symbole $ est interprété en base 16 et automatiquement converti en décimal lors de l’exécution.

x vaut $FF
affiche x - $FF // 0
v1.2 Obsolète

Cette mise à jour apporte de nouvelles fonctionnalités, des améliorations d’interface et plusieurs optimisations afin d’offrir une expérience plus fluide et plus agréable.


Améliorations & optimisations

- Amélioration et optimisation des performances de l’interface CoddyRun

- Amélioration significative des performances de l’interpréteur CoddyRun.

- Amélioration et correction du système de recherche des mises à jour de l’application.


Sécurité & serveur

- Renforcement de la sécurité : l’interface est désormais accessible uniquement en Localhost (100 %).

- Suppression du mot de passe au profit d’une authentification automatique par session sécurisée.

- Possibilité de personnaliser le port du serveur via un paramètre de lancement (exemple : CoddyRun.exe --port=9090)


Langage & exécution

- Ajout d’une nouvelle action : « Arrêter l’exécution »

- Ajout d’une nouvelle condition au langage : sinon si ... alors


Interface & aide

- Intégration d’un nouveau module dans l’interface : « Bibliothèque CoddyRun »

- Amélioration de l’aide avec l’intégration de nouveaux contenus et modules.

v1.1 Obsolète

Cette mise à jour consolide les fonctionnalités existantes, améliore la stabilité du système et prépare le terrain pour les prochaines évolutions majeures du projet.


Nouvelles fonctionnalités

- Partager votre programme en image : exportez votre travail au format image pour le partager facilement.

- Partager le résultat en image : exportez également le résultat de votre programme sous forme d’image.

- Importer du code : chargez rapidement un fichier de code existant dans l’éditeur (ex. : Bibliothèque CoddyRun).


Nouvelles options

- Auto-complétion : activez ou désactivez l’aide à la saisie selon vos préférences.

- Mode sombre : une interface plus confortable pour les longues sessions, notamment en environnement peu lumineux.


Améliorations & optimisations

- Optimisation des ressources de l’interface CoddyRun

- Mise à jour de l’interface graphique web

- Corrections de bugs mineurs pour plus de stabilité

- Optimisation des explications pas à pas : les logs sont désormais ignorés au-delà de 1000 lignes


Serveur CoddyRun

- Affichage du temps de traitement pour chaque programme interprété

- Blocage des exécutions multi-instances du serveur CoddyRun (prévention des lancements simultanés)

v1.0 Obsolète

Lancement initial — éditeur avec coloration syntaxique, console intégrée, moteur d'exécution complet, log pédagogique pas à pas, mode interactif (saisie utilisateur), toutes les structures de contrôle (si, pour, tant que, répète), fonctions, procédures, tableaux, et bibliothèque de fonctions intégrées.

Les mises à jour ne sont pas obligatoires, mais recommandées : elles apportent des corrections, des gains de performance et de nouvelles fonctionnalités. L'application vous prévient dans la console lorsqu'une version plus récente est disponible.