Source: Scratch Wiki en français

(Redirigé depuis Variables)


Les variables


Définition générale

Une variable est un nom donné à un emplacement en mémoire (RAM) contenant une information. La valeur contenue à cette adresse peut le plus souvent changer au cours du temps, d'où le nom de "variable" (qui varie).

Info
 Info :
Il existe aussi des variables dont la valeur, une fois définie lors de la création de la variable ne peut pas changer. Ce type de variable est alors appelé une constante (qui est constant, qui ne change pas). Scratch ne possède pas ce genre de variables.

Les variables ne peuvent contenir qu'une information à la fois, au contraire des listes. Les valeurs contenues sont généralement toujours du même type (ce n'est pas forcément le cas dans Scratch).

Les différents types de valeurs sont:

  • les nombres entiers
  • les nombres à virgule flottante (nombres à virgule, nombres décimaux)
  • les caractères (une seule lettre, un seul chiffre ou un seul caractère spécial)
  • les chaines de caractères (suite de lettre, chiffres ou caractères spéciaux)
  • les valeurs booléennes (valeur vraie ou fausse)
  • les objets (plusieurs données organisées d'une certaine façon, dans un structure)
Info
 Info :
Dans certains langages de programmation, certains types n'existent pas, comme les chaines de caractère ou les valeurs booléennes, qui n'existent pas en C, les nombres entiers qui sont en fait des nombre à virgule en JavaScript, etc.. Scratch supporte tous les types listés ci-dessus sauf les objets.

Les variables dans Scratch

Étiquette variable.png

Scratch ne fait pas exception à la règle et permet l'utilisation de variables.

Ces dernières peuvent contenir n'importe quelle valeur (il n'y a pas besoin de préciser le type d'information stockée) et celle-ci peut être modifiée à tout moment lors de l'exécution du programme.

Créer une variable

L'interface dans l'éditeur de Scratch 3.0 pour créer une nouvelle variable.

Pour créer une variable, il faut aller dans la catégorie "Données" de la réserve de code dans l'éditeur, puis cliquer sur le bouton "Créer une variable".

Donnez un nom à votre variable, celle-ci doit être unique (du moins, pas encore en utilisation dans ce sprite).

Variable pour tous les sprites (globale)

Une variable créée avec l'option "visible pour tous les sprites" (dite "variable globale") est une variable qui sera visible par tous les sprites ou la scène. Cette variable sera donc visible dans la section des Données dans la réserve de code pour n'importe quel sprite sélectionné (ou même la scène).

Les sprites et la scène auront donc la possibilité de voir la valeur de cette variable ou de la modifier grâce à un bloc de donnée présent dans le code de ce sprite (ou de la scène).

Info
 Info :
Toutes les variables créées sont initialisées à 0. C'est à dire qu'elles ont la valeur 0 après qu'elles aient été créées.
Attention
 Attention :
La valeur de ces variables persiste une fois le projet arrêté. Lors d'un nouveau lancement du projet par la même personne, la variable aura alors la même valeur qu'à l'arrêt précédent. Veillez donc bien à toujours donner une valeur de départ (initialiser) à chaque variable au lancement du projet si besoin.
LeSaviezVous
 LeSaviezVous :
Par défaut, tout nouveau projet inclut une variable intitulée (my variable) (« ma variable » en français). Elle fonctionne comme toute variable classique, et peut être utilisée, renommée ou supprimée.

Variable pour ce sprite uniquement (locale)

À contrario, une variable créée avec l'option "pour ce sprite uniquement" (aussi dite "variable locale") sera uniquement visible et accessible dans le code du sprite qui était sélectionné lorsqu'elle a été créée.

Les autres sprites et la scène ne verront pas cette variable apparaître dans la liste des blocs de donnée lorsque ces derniers seront sélectionnés. Ils ne pourront donc pas modifer son contenu. Cependant, les autres sprites pourront obtenir le contenu de la variable grâce au bloc ([ v] de ( v)).

LeSaviezVous
 LeSaviezVous :
Les clones auront une variable qui leur est propre (différente que celle du sprite) si elle a été créée seulement pour le sprite "père". Cependant, la valeur qu'aura la variable sera celle qu'avait le sprite "père" lors de la création du clone. Cela permet de faire stocker des valeurs différentes entre sprite et clone. Il est cependant impossible par défaut de transmettre les valeurs d'un sprite à un de ses clones après création de ce dernier.

Variable serveur, stockée sur le Cloud (dit "variable cloud")

Une variable créée avec l'option "variable server" cochée est une variable accessible par tous les sprites du projet et la scène (au même titre qu'une variable globale) et dont la valeur est conservée sur les serveurs de Scratch.

Cela veut dire que n'importe quel scratcher ayant le grade de scratcher confirmé aura le droit et la possibilité de modifier la valeur de cette variable lors de l'exécution du projet. Cette valeur sera alors visible par les autres utilisateurs et pourra être utilisée.

Ces variables sont principalement utilisées pour des projets multijoueurs, comme un record parmi tous les utilisateurs, pour référencer la position de plusieurs joueurs dans un jeu multijoueur, pour connaitre combien d'utilisateurs ont utilisé le projet, etc…

Danger
 Danger :
L'utilisation des variables cloud pour la création d'un chat online (ou tous autres procédés de communication en dehors de l'espace de commentaires) est interdite !

Limitation des variables

  • Les variables locales et globales ont une limite de 1024 caractères.
Info
 Info :
Il existe cependant certaines techniques, comme celle consistant à mettre les éléments dans une liste puis de donner la valeur de la liste à une variable, permettent de faire disparaître la limite de caractère d'une variable.
  • Les variables cloud ne supportent ni les lettres ni les caractères spéciaux. Seuls les chiffres de 0 à 9 sont supportés.
Info
 Info :
Il existait cependant des techniques pour enregistrer un nombre en hexadécimal (chiffres de 0 à 9 et lettres de a à f) sur le cloud, permettant d'encoder de plus grandes valeurs et ainsi plus d'informations. Cette technique est maintenant obsolète.
Attention
 Attention :
Depuis le 15 février 2018, la longueur maximale des variables stockées sur le serveur (cloud) est de 256 caractères. Aussi, l'hexadécimal n'est plus supporté. Seul les chiffres de 0 à 9 sont maintenant autorisés.

Renommer une variable

Faire un clic droit pour renommer la variable.
L'interface pour renommer une variable dans Scratch 3.0.

Pour renommer une variable, rendez-vous dans la section des données du projet, avec un sprite sélectionné qui peut voir la variable.

Faites ensuite un clic droit sur la variable à renommer puis cliquez sur "renommer la variable".

Donnez ensuite le nouveau nom de la variable. Le nouveau nom doit également être unique pour le sprite.

Supprimer une variable

Pour supprimer une variable, rendez-vous dans la section des données du projet, avec un sprite sélectionné qui peut voir la variable.

Faites un clic droit sur la variable en question puis cliquez sur "supprimer une variable".

Info
 Info :
Il se peut que la variable revienne après avoir été supprimée si vous exécutez un script contenant un bloc de données qui appelle cette variable. Pour résoudre le problème, retirez le bloc en question, puis tentez à nouveau de supprimer la variable. La variable peut également revenir si vous n'avez pas sauvegardé votre projet.

Afficher et cacher une variable


Différents affichages d'une variable

└─ Article principal : Affichage des variables