De Scratch Wiki en français

m
(36 versions intermédiaires par 8 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
----
+
{{Titre|Les variables cloud (variables nuage)}}{{AFinir}}
<div style="margin: 0.5em; padding: 0.25em 0.9em;"><center><span style="font-size:2em">'''Les variables'''</span></center></div>
 
----
 
  
Sans doute connaissez-vous les [[Scratch_Wiki_Accueil/les_blocs/données|variables]], mais connaissez-vous les variables cloud ?
+
{{InfoBloc
 +
|(☁ variable cloud)
 +
|[[:Catégorie:Blocs_Donnée|Donnée]]
 +
|[[Forme_des_blocs#Les_blocs_de_valeur|Blocs de valeur]]
 +
|[[Scratch 2.0]]
 +
|
 +
|
 +
}}
  
<scratchblocks>
+
Sur [[Scratch]], une [[Variables_cloud_(tutoriel)|variable cloud]] (aussi parfois appelée "[[Variables_cloud_(tutoriel)|variable nuage]]" en français) est un type de variable pouvant garder sa valeur grâce à un serveur.
(variable simple)
 
(☁ variable cloud)
 
</scratchblocks>
 
  
Vous l'aurez compris, c'est par le petit nuage (en anglais : ''cloud'') qui distingue les variables locales des variables cloud.
+
On peut distinguer une variable cloud d'une variable globale ou locale grâce à une icône de nuage précédant son nom.
  
== La différence locale/cloud ==
+
==Différence entre les variables globales / locales et les variables cloud==
  
=== Variable locale ===
+
===Variables globales / locales===
  
La variable locale sert à stocker des lettres et des chiffres, ainsi que pas mal de symboles. Elle peut changer à l'intérieur du projet, mais elle ne peut pas être modifiée "à distance".
+
Les variables globales et locales servent à stocker temporairement des lettres et des chiffres durant toute la durée du projet. Sa valeur peut-être modifiée au cours du temps grâce aux blocs adéquats mais elle "perdra" sa valeur lorsque le projet sera arrêté ou relancé. Elle reprendra donc sa valeur par défaut (celle qu'elle contenait lorsque le créateur du projet l'a sauvegardé pour la dernière fois, où la valeur donnée par un bloc d'assignation de valeur au lancement du projet, si celui-ci en contient un) lors du prochain lancement du projet.
  
=== Variable cloud ===
+
===Variables cloud===
  
La variable cloud sert à stocker uniquement des chiffres. Elle peut changer sur tous les ordinateurs en même temps, "à distance", en quelque sorte. Si un utilisateur la change depuis son ordinateur, elle changera sur TOUS les ordinateurs !
+
'''Similarités :'''
{{Template:note|les valeur et les nom des variable cloud d'un projet sont visible sur sa page puis le bouton cloud data}}
+
* Elles peuvent, comme les variables globales changer de valeur au cours du temps.
 +
 
 +
'''Différences :'''
 +
* Les variables cloud ne peuvent stocker uniquement que des chiffres.
 +
* Les variables cloud ont une valeur d'une longueur limitée à 256 chiffres.
 +
* Lorsque la valeur de la variable est modifiée, elle le sera également pour toutes les personnes utilisant le projet au même moment. La variable peut donc être modifié par un utilisateur "à distance" pour tous les autres utilisateurs.
 +
* La variable cloud prendra comme valeur au lancement du projet celle qu'elle avait lorsque la dernière personne ayant été sur le projet a quitté le projet.
 +
* On ne peut crėer que 10 variables serveurs normalement dans un projet.
 +
 
 +
{{Info|Les valeurs et les noms des variables cloud d'un projet sont visibles sur la page "Cloud Data" du projet. Cette page est accessible en cliquant sur le bouton adéquat sur la page du projet en question.}}
 +
 
 +
{{Attention|Seuls les utilisateurs '''connectés''' et ayant le rang de [[Scratcher confirmé]] (et d'[[Équipe Scratch]]) peuvent modifier la valeur d'une variable cloud; les autres ne pouvant y accéder qu'en lecture uniquement.}}
  
 
== Utiliser une variable cloud ==
 
== Utiliser une variable cloud ==
  
On peut imaginer le nombre de possibilités avec les variables cloud : meilleur score mondial, chat (pas l'animal), liste de joueurs...
+
Les caractéristiques particulières des variables cloud permettent aux Scratcheurs les maîtrisant de réaliser des projets avec des mécaniques plus avancées.
 +
 
 +
Il est alors possible de réaliser, entre autre, des jeux multijoueurs en ligne, un système de sauvegarde du meilleur score sur le projet, une liste des derniers utilisateurs ayant visité le projet, etc... Les possibilités sont donc multiples.
 +
 
 +
Concernant leur utilisation (lecture et modification de leur valeur), elle s'effectue de la même façon qu'une variable locale / globale, avec les blocs <sb>mettre [☁ variable cloud v] à (0)</sb>, <sb>ajouter (1) à [☁ variable cloud v]::variables</sb> et <sb>(☁ variable cloud)</sb>.
 +
 
 +
==Listes cloud et Stocker des lettres et autres caractères spéciaux==
 +
 
 +
Une des contraintes des variables cloud et le fait de n'accepter que des chiffres.
 +
 
 +
Pour pouvoir stocker des données telles que des lettres et autres caractères spéciaux, quelques techniques peuvent êtres employées pour y parvenir.
 +
 
 +
===Convertir chaque lettre en chiffre===
 +
Une de ces techniques est d'attribuer une valeur numérique (un nombre quoi) à chaque caractère du texte à stocker. Ces nombres seraient alors mis bout-à-bout pour former un grand nombre, qui lui sera stocké.
 +
 
 +
Par exemple, nous voulons pouvoir stocker tous les caractères de 0 à 9, de a à z (en minuscule), de A à Z (en majuscule) et quelques caractères spéciaux (tels que " " (espace), "." (point), "," (virgule), ";" (point virgule), "'" (apostrophe), """ (guillemet), "+" (plus), "-" (moins), "*" (fois), "/" (divisé) et "_" (tirait du bas)).
 +
 
 +
Nous comptons qu'il nous faut donc 73 nombres différents (10 chiffres + 26 lettre minuscules + 26 lettres majuscules + 11 caractères spéciaux).
 +
 
 +
[[Fichier:Variables cloud tutoriel correspondance code caractère.png|500px|vignette|La table de correspondance utilisée pour l'exemple. Chaque caractère correspond à un nombre.]]
 +
 
 +
Pour pouvoir encoder et décoder tous ces symboles plus facilement, nous utiliseront des nombres d'une même longueur. Une longueur de 2 chiffres par nombre convient parfaitement à la situation, puisque nous comptons en base 10 (notre système de comptage utilise 10 chiffres, de 0 à 9, et non 2 comme en binaire avec le 0 et le 1). Deux chiffres en base 10 nous donnent donc 100 combinaisons possibles (10 possibilités pour le premier chiffres et 10 possibilités pour le deuxième chiffre, soit 10 x 10 possibilités, soit 10²), soit 100 caractères différents à stocker, or nous n'en avons besoin que de 73 dans cet exemple; il reste donc une vingtaine de nombre disponibles pour encoder plus de caractères spéciaux.
 +
 
 +
Il n'y a plus qu'à attribuer un nombre à chaque caractère. Dans cet exemple, le caractère "1" aura correspondra au nombre 01, "2" au nombre 02, "a" au nombre 11, "b" au nombre 12, etc...  
  
Mais les variables cloud sont loin d'être facile à utiliser ; tout d'abord, leur plus gros "défaut" est de ne supporter que les chiffres.
 
  
Donc, comment faire ? Pour le meilleur score mondial, c'est facile, il y a même un [[Scratch_Wiki_Accueil/tutos/013_ajouter_highscore|tutoriel sur le Wiki français]] (quelle chance !). Pour les listes de joueurs, malheureusement, il n'existe pas de liste cloud. Il faut alors coder le nom du joueur en chiffres, puis transformer cette suite de chiffres en liste... bref, c'est loin d'être facile.
+
{{Info|En raison des limites de stockage à 256 caractères, cette technique ne permet de stocker que  128 caractères(256/2).
 +
On peut en revanche multiplier par dix l'espace de stockage en collant les variables cloud et en les utilisant comme une seule variable
 +
}}
  
=== Traduire les chiffres en lettres (et inversement) ===
+
{{Attention|Veillez à ne pas utiliser le nombre "00" pour un caractère, car si une variable est mise à une valeur commençant par "00", le "00" sera retiré (car les zéros devant un nombre peuvent être retirés).}}
  
Pour que la variable cloud affiche un mot ou une phrase, il faut tout d'abord coder ce mot ou cette phrase : pour cela, on utilise une sorte de "code" qui attribuera à chaque lettre deux chiffres. Ainsi, on peut dire que A = 45 ou que X = 78.
+
{{Info|Cette technique permet pourtant d'utiliser les nombres de "01" à "09", car si un des zéros venaient à disparaître, on peut s'en apercevoir rapidement grâce à la longueur du nombre qui devient impaire, alors qu'elle est toujours paire dans notre cas (puisque nous utilisons 2 chiffres par nombre pour chaque caractère). Le zéro supprimé pourra donc être rajouté facilement en début du nombre.}}
  
{{Template:note|N'utilisez pas de 0 en premier chiffre !}}
+
{{AFinir}}
  
En quelque sorte, le script va être :
+
===Encode et décoder les variable cloud===
  
<scratchblocks>
+
{{Projet|366806295}}
si <<(lettre (1) de (☁ variable_cloud)) = [3]> et <(lettre (2) de (☁ variable_cloud)) = [9]>> alors
 
mettre [traduction v] à [A]
 
end
 
</scratchblocks>
 
  
Si le script repère que le premier chiffre de la variable cloud est 3 et que le deuxième est 9, alors sa traduction sera "A". Donc A = 39. Maintenant, faisons l'inverse :
+
==Tutoriels plus détaillés==
 +
Le Scratch Wiki Fr propose une série de tutoriels plus détaillés pour certaines utilisations plus précise des variables cloud, tels que :
 +
* [[Ajouter_un_highscore_(tutoriel)|Créer un high-score (record)]]
  
<scratchblocks>
 
si <(traduction) = [A]> alors
 
mettre [☁ variable_cloud v] à [39]
 
end
 
</scratchblocks>
 
  
Ce script marche pour une seule lettre, mais c'est déjà pas mal.
+
{{Tuto}}

Version du 27 septembre 2020 à 01:45


Les variables cloud (variables nuage)


(☁ variable cloud)
(☁ variable cloud)

Catégorie : Donnée
Type : Blocs de valeur
Ajouté dans : Scratch 2.0


Code du bloc : (☁ variable cloud)


Sur Scratch, une variable cloud (aussi parfois appelée "variable nuage" en français) est un type de variable pouvant garder sa valeur grâce à un serveur.

On peut distinguer une variable cloud d'une variable globale ou locale grâce à une icône de nuage précédant son nom.

Différence entre les variables globales / locales et les variables cloud

Variables globales / locales

Les variables globales et locales servent à stocker temporairement des lettres et des chiffres durant toute la durée du projet. Sa valeur peut-être modifiée au cours du temps grâce aux blocs adéquats mais elle "perdra" sa valeur lorsque le projet sera arrêté ou relancé. Elle reprendra donc sa valeur par défaut (celle qu'elle contenait lorsque le créateur du projet l'a sauvegardé pour la dernière fois, où la valeur donnée par un bloc d'assignation de valeur au lancement du projet, si celui-ci en contient un) lors du prochain lancement du projet.

Variables cloud

Similarités :

  • Elles peuvent, comme les variables globales changer de valeur au cours du temps.

Différences :

  • Les variables cloud ne peuvent stocker uniquement que des chiffres.
  • Les variables cloud ont une valeur d'une longueur limitée à 256 chiffres.
  • Lorsque la valeur de la variable est modifiée, elle le sera également pour toutes les personnes utilisant le projet au même moment. La variable peut donc être modifié par un utilisateur "à distance" pour tous les autres utilisateurs.
  • La variable cloud prendra comme valeur au lancement du projet celle qu'elle avait lorsque la dernière personne ayant été sur le projet a quitté le projet.
  • On ne peut crėer que 10 variables serveurs normalement dans un projet.
Info
 Info :
Les valeurs et les noms des variables cloud d'un projet sont visibles sur la page "Cloud Data" du projet. Cette page est accessible en cliquant sur le bouton adéquat sur la page du projet en question.
Attention
 Attention :
Seuls les utilisateurs connectés et ayant le rang de Scratcher confirmé (et d'Équipe Scratch) peuvent modifier la valeur d'une variable cloud; les autres ne pouvant y accéder qu'en lecture uniquement.

Utiliser une variable cloud

Les caractéristiques particulières des variables cloud permettent aux Scratcheurs les maîtrisant de réaliser des projets avec des mécaniques plus avancées.

Il est alors possible de réaliser, entre autre, des jeux multijoueurs en ligne, un système de sauvegarde du meilleur score sur le projet, une liste des derniers utilisateurs ayant visité le projet, etc... Les possibilités sont donc multiples.

Concernant leur utilisation (lecture et modification de leur valeur), elle s'effectue de la même façon qu'une variable locale / globale, avec les blocs mettre [☁ variable cloud v] à (0), ajouter (1) à [☁ variable cloud v]::variables et (☁ variable cloud).

Listes cloud et Stocker des lettres et autres caractères spéciaux

Une des contraintes des variables cloud et le fait de n'accepter que des chiffres.

Pour pouvoir stocker des données telles que des lettres et autres caractères spéciaux, quelques techniques peuvent êtres employées pour y parvenir.

Convertir chaque lettre en chiffre

Une de ces techniques est d'attribuer une valeur numérique (un nombre quoi) à chaque caractère du texte à stocker. Ces nombres seraient alors mis bout-à-bout pour former un grand nombre, qui lui sera stocké.

Par exemple, nous voulons pouvoir stocker tous les caractères de 0 à 9, de a à z (en minuscule), de A à Z (en majuscule) et quelques caractères spéciaux (tels que " " (espace), "." (point), "," (virgule), ";" (point virgule), "'" (apostrophe), """ (guillemet), "+" (plus), "-" (moins), "*" (fois), "/" (divisé) et "_" (tirait du bas)).

Nous comptons qu'il nous faut donc 73 nombres différents (10 chiffres + 26 lettre minuscules + 26 lettres majuscules + 11 caractères spéciaux).

La table de correspondance utilisée pour l'exemple. Chaque caractère correspond à un nombre.

Pour pouvoir encoder et décoder tous ces symboles plus facilement, nous utiliseront des nombres d'une même longueur. Une longueur de 2 chiffres par nombre convient parfaitement à la situation, puisque nous comptons en base 10 (notre système de comptage utilise 10 chiffres, de 0 à 9, et non 2 comme en binaire avec le 0 et le 1). Deux chiffres en base 10 nous donnent donc 100 combinaisons possibles (10 possibilités pour le premier chiffres et 10 possibilités pour le deuxième chiffre, soit 10 x 10 possibilités, soit 10²), soit 100 caractères différents à stocker, or nous n'en avons besoin que de 73 dans cet exemple; il reste donc une vingtaine de nombre disponibles pour encoder plus de caractères spéciaux.

Il n'y a plus qu'à attribuer un nombre à chaque caractère. Dans cet exemple, le caractère "1" aura correspondra au nombre 01, "2" au nombre 02, "a" au nombre 11, "b" au nombre 12, etc...


Info
 Info :
En raison des limites de stockage à 256 caractères, cette technique ne permet de stocker que 128 caractères(256/2).

On peut en revanche multiplier par dix l'espace de stockage en collant les variables cloud et en les utilisant comme une seule variable

Attention
 Attention :
Veillez à ne pas utiliser le nombre "00" pour un caractère, car si une variable est mise à une valeur commençant par "00", le "00" sera retiré (car les zéros devant un nombre peuvent être retirés).
Info
 Info :
Cette technique permet pourtant d'utiliser les nombres de "01" à "09", car si un des zéros venaient à disparaître, on peut s'en apercevoir rapidement grâce à la longueur du nombre qui devient impaire, alors qu'elle est toujours paire dans notre cas (puisque nous utilisons 2 chiffres par nombre pour chaque caractère). Le zéro supprimé pourra donc être rajouté facilement en début du nombre.


Encode et décoder les variable cloud


Tutoriels plus détaillés

Le Scratch Wiki Fr propose une série de tutoriels plus détaillés pour certaines utilisations plus précise des variables cloud, tels que :


Cet article fait partie de la catégorie des tutos
Tous les articles de cette catégorie :
Les cookies nous aident à fournir nos services. En utilisant nos services, vous acceptez notre utilisation des cookies.