Catégorie : Programmation
Même si Blockly intègre par défaut les constructions de base utilisées en programmation, il n'en reste pas moins qu'il subsiste des oublis importants, surtout si on veut créer des programmes plus élaborés. Par exemple : la possibilité d'insérer des commentaires, d'utiliser des variables locales, de connaître l'état et la position de la souris, et d'afficher des expressions mathématiques. C'est la raison d'être de cette catégorie de blocs.
Commentaire

Paramètres
• une valeur texte (le texte vide par défaut, mais qui peut être
une expression textuelle quelconque)
Fonctionnement
• un commentaire ne modiie en rien l'exécution d'un programme : il
est tout simplement ignoré
• en fait, les commentaires servent à renseigner l'humain qui veut
comprendre le programme
Remarques
• éviter les commentaires «évidents», qui ne font que décrire en
mots l'action d'un ou de plusieurs blocs
Faire

Paramètres
• un bloc fonction avec composante retour
Fonctionnement
• exécute la fonction en question, et « oublie » la
valeur retournée, s'il y en a une
• effet visuel : transforme en un bloc fonction sans
composante retour
Remarques
• pour une discussion plus détaillée, voir l'appendice
ci-dessous
Faire après délai

Paramètres
• un bloc fonction avec composante retour
• une valeur délai (0 ci-dessus, mais qui peut être une
expression numérique quelconque)
Fonctionnement
• attend le temps spécifié, puis exécute la fonction en question
• effet visuel : transforme en un bloc fonction sans
composante retour
Remarques
• les blocs successifs d'un programme p5Visuel sont
donc exécutés séquentiellement, mais on n'attend pas
nécessairement
que l'exécution du bloc courant soit terminée avant de commencer
l'exécution du bloc suivant. C'est le cas, par exemple,
lorsqu'on accomplit une tâche comme charger un fichier. Il
existe plusieurs mécanismes pour gérer ce phénomène,
et l'exécution après délai en est un.
Variable locale

Paramètres
• un bloc variable
Fonctionnement
• déclare que la variable en question est locale
Remarques
• par défaut, toutes les variables de p5Visuel
sont globales
• ce bloc doit être utilisé à l'intérieur de la définition d'une
fonction (pour déclarer une variable locale à cette fonction)
• ce bloc n'a aucun effet s'il est utilisé en dehors de la
définition d'une fonction
Quitter

Paramètres
• une valeur (facultative)
Fonctionnement
• termine immédiatement l'exécution de la fonction contenant ce
bloc
• si un paramètre valeur est présent, la valeur
est retournée (dans le contexte d'appel de la fonction)
Est un nombre ?

Paramètres
• une valeur expression (vide ci-dessus, mais qui peut
être une expression textuelle quelconque)
Fonctionnement
• retourne vrai si l'expression en question
représente un nombre, et faux sinon
Remarques
• exemple de nombre reconnu : -14.4729 (point décimal et non
virgule décimale)
• exemple de nombre non reconnu : 1+1 (les opérations
arithmétiques ne sont pas acceptées)
Radians

Paramètres
• une valeur angle (0 ci-dessus, mais qui peut être une
expression numérique quelconque)
Fonctionnement
• suppose que angle est exprimé en degrés, et retourne angle
exprimé en radians
Degrés

Paramètres
• une valeur angle (0 ci-dessus, mais qui peut être une
expression numérique quelconque)
Fonctionnement
• suppose que angle est exprimé en radians, et retourne
angle exprimé en degrés
Bouton de souris enfoncé ?

Paramètres : aucun
Fonctionnement
• retourne vrai si le bouton de la souris est enfoncé,
et faux sinon
Position X souris

Paramètres : aucun
Fonctionnement
• retourne la coordonnée en x de la position de la
souris
Remarques
• la position est spécifiée dans le système de coordonnées du
canvas :
* l'origine (0,0) en en haut à gauche du canvas
* l'axe des x pointe vers la droite
* l'axe des y pointe vers le bas
Position Y souris

Paramètres : aucun
Fonctionnement
• retourne la coordonnée en y de la position de la
souris
Remarques
• la position est spécifiée dans le système de coordonnées du
canvas :
* l'origine (0,0) en en haut à gauche du canvas
* l'axe des x pointe vers la droite
* l'axe des y pointe vers le bas
Remplacer dans texte

Paramètres
• une valeur texte (rien ci-dessus, mais qui peut être
une variable quelconque)
• une valeur avant (vide ci-dessus, mais qui peut être
un texte quelconque)
• une valeur après (vide ci-dessus, mais qui peut être
un texte quelconque)
Fonctionnement
• dans le texte, remplace toutes les
occurences de la chaîne de caractères avant par la
chaîne de caractères après
Substituer valeurs dans expression

Paramètres
• une valeur texte (rien ci-dessus, mais qui peut être
une variable quelconque)
• une valeur liste (rien ci-dessus, mais qui peut être
une liste quelconque)
Fonctionnement
• dans le texte, remplace toutes les
occurences de @n par le (n-1) ième élément de la liste
Remarques
• exemple : si le texte est "@1+@2" et si la liste est [0,1] alors
le texte retourné sera "0+1"
• notez qu'on compte les occurences à partir de 1 (@0 ne serait
pas modifié) même si les éléments de la liste débutent au 0 ième
Finaliser expressions mathématiques

Paramètres : aucun
Fonctionnement
• demande à MathJax de faire le rendu de
toutes les expressions mathématiques fabriquées à l'aide de blocs
code math
Remarques
• ce bloc est habituellement placé à la fin des instructions
déclenchées par un clic de bouton, un changement de valeur
d'une glissière, ou de la fonction actions en boucle
Code math

Paramètres
• une valeur texte (rien ci-dessus, mais qui peut être
une variable quelconque)
Fonctionnement
• le texte entré en paramètre doit être un
code AsciiMath (par exemple : un code produit par le Visual
Math Editor)
• le texte retourné par le bloc est une version compréhensible par
MathJax
Remarques
• le recours au bloc code math ne provoque pas le rendu
de l'expression mathématique en symbolisme usuel :
pour celà, il faudra avoir recour au bloc Finaliser les
expressions mathématiques
Appendice : commandes VS opérateurs [retour (ou non) de valeurs par les fonctions]
(Pour les utilisateurs expérimentés)Blockly fait une distinction très nette entre deux types de fonctions :
• les commandes qui ne retournent pas de valeur (fonctions définies via des blocs sans composante retour),


• et les opérations qui en retournent une (fonctions définies via des blocs avec composante retour).


Par contre, dans le cadre de p5Visuel, on traduit les programme Blockly en JavaScript, qui est utilisé dans la fabrication de nos pages web. Or JavaScript ne fait pas une distinction marquée entre les commandes et les opérateurs : en fait, dans le cas d'une fonction associée à un clic sur un bouton, Blockly exige l'utilisation d'une opération, alors que la fonction appelée est foncièrement une commande.
Pour retrouver cette souplesse de JavaScript dans Blockly, p5Visuel propose des moyens de transformer
• une opération en commande : en utilisant le bloc Faire

• une commande en opération : en utilisant le bloc Quitter avec une valeur de retour dans la définition de la commande.
