Les variables
En programmation, en règle générale, on utilise des variables pour manipuler notre programme. Un script étant comme un petit programme, l'utilisation des variables est inévitable. Par-delà leur nom un peu barbare pour ceux qui n'y sont pas habitués, leur usage est facile et intuitif.
Variables¶
Une variable consiste en une boîte contenant une valeur, et portant un nom. Ainsi, on peut récupérer la valeur contenue dans la boîte grâce à son nom, très facilement. En pratique, on utilisera l'action set
. Celle ci s'utilise de la manière suivante :
set {<nom>} to <valeur>
On peut par exemple définir une variable appelée age dont la valeur sera 18 de la manière suivante :
set {age} to 18
Tip
Le nom d'une variable ne doit pas contenir d'espaces. Il peut contenir des accents, mais pour éviter des éventuels problèmes lors de l'encodage du fichier, il est préférable de les éviter.
Cette variable peut maintenant être utilisée plus ou moins n'importe où dans le bloc où elle a été définie. Par exemple, on peut l'afficher dans la console grâce à l'action print
en utilisant directement son nom :
print {age} #Affichera 18 dans la console.
Tip
Le code après le symbole #
est ignoré : il s'agit d'un commentaire. Tout texte précédé d'un tel symbole sera ignoré par Sqript. Cela permet d'ajouter des précisions sur son code et ainsi le rendre plus lisible par soi-même, et par les autres.
Il est aussi possible de définir une variable dont le nom est dynamique. Par exemple, si l'on veut définir une valeur propre à un joueur en particulier, on peut utiliser le code suivant :
set {<player's name>.money} to 1000
Variables globales¶
Il est possible d'enregistrer des variables qui seront utilisables partout, dans n'importe quel autre partie du script, ainsi que dans tous les autres scripts. Pour indiquer qu'une variable est globale, il suffit d'ajouter le symbole $
devant le nom de la variable. Ces variables seront également enregistrées dans un fichier (/scripts/data.dat) et seront sauvegardées lors des redémarrages de Sqript, si leur type supporte la sauvegarde (s'ils sont sérialisables)
Tip
Le comportement des variables globales est similaire aux variables classiques du plugin Skript pour les habitués.
Types¶
Chaque valeur contenue par une variable possède un certain type. Par exemple, la variable age
ci-dessus est un nombre. Il existe de nombreux types.
Nombres¶
Les nombres sont les objets les plus manipulés en règle générale dans un programme. Ils peuvent être définis dans un script en les écrivant directement, ou en les exprimant selon une expression mathématique (voir les opérateurs) pouvant intégrer directement des variables définies plus haut:
set a to 5.6
set b to 2
set resultat to a*b #5.6 × 2 = 11.2
print resultat #Affiche 11.2
Tip
Il est possible d'utiliser des nombres à virgules, mais il faut veiller à utiliser le point .
et non pas la virgule ,
!
Chaînes de caractères¶
En dehors des nombres, le plus utilisé est certainement la chaîne de caractères. Il s'agit d'une suite de caractères, définie entre guillemets. Définissons par exemple la variable prenom
à Louis :
set {prenom} to "Louis"
On peut mettre ce que l'on veut entre les guillemets. Il peut y avoir des espaces, des caractères spéciaux (veiller à l'encodage !) ou des nombres.
Pour inclure des guillemets dans notre chaîne de caractère, il faut les échapper. Cela indique à Sqript qu'il ne faut pas interpréter ce guillemet comme la fin de la chaîne. Pour échapper un guillemet, on le précède d'un antislash : \
. Ce qui donnerait : set {presentation} to "Je m'appelle \"Louis\""
.
Il est possible de concaténer les chaînes de caractères entre elles en utilisant l'addition :
print "Chaine 1 " + "Chaine 2" #Affiche Chaine 1 Chaine 2
Enfin, il est possible d'ajouter facilement une variable dans une chaîne de caractères, en utilisant le symbole pourcentage %
:
print "%{prenom}%" #Affichera Louis.
Booléens¶
Enfin, parmi les types primitifs à connaître, il y a les booléens.
Les booléens sont des variables pouvant prendre uniquement deux valeurs : true
ou false
(respectivement vrai et faux en français). Elle sont très utiles car on peut les manipuler avec certains opérateurs pour établir une certaine logique d'exécution de notre script en utilisant les conditions.
set {mon_booleen} to false
Opérateurs¶
Les variables peuvent être manipulées par des opérateurs (+
*
-
/
...). C'est le type de la variable (le type de la valeur de la variable) qui définit comment se comporte la variable avec chaque opérateur.
Il se peut qu'un type n'ait aucune définition pour un certain opérateur, dans ce cas, une erreur sera levée lors de la compilation. Il se peut également qu'un type ait une définition pour un opérateur, mais que pour un certain autre type de valeur. Dans ce cas, il faudra veiller au typage de nos variables. Par exemple :
print 5 - 9 + 2 #Affiche -2
print "Bonjour !" + 26 #Affiche Bonjour ! 26
print "Bonjour !" + "Au revoir !" #Affiche Bonjour ! Au revoir !
print "Bonjour !" - "Au revoir !" #N'a pas de sens, lèvera une erreur
Certains opérateurs combinent deux valeurs d'un même type et donnent une valeur d'un type différent. C'est le cas de l'opérateur =
qui renvoie un booléen lorsqu'il est utilisé avec deux nombres :
print 8 = 10 #Affiche False
Pour les nombres, les opérateurs communs sont implémentés par Sqript. En voici une liste non exhaustive :
Symbole | Description |
---|---|
+ | Addition |
- | Soustraction |
* | Multiplication |
/ | Division |
! | Factorielle (?) |
^ | Exponentiation (Puissance) |
<= | Inférieur ou égal à |
< | Inférieur à |
>= | Supérieur ou égal à |
> | Supérieur à |
= | Égal à |
% | Modulo (reste dans la vision euclidienne par) |
Warning
Toute erreur de parenthésage lèvera une erreur lors de la compilation