les variables de type bool ou booléennes sont le type le plus simple en informatique puisqu’elle ne peuvent avoir que deux valeurs : TRUE ou FALSE ( 0 ou 1 )
Ce type sert principalement à faire des comparaisons. Ces comparaisons s’écrivent sous une forme qu’on appel synthaxe booléenne.
Si vous aimez les phrases avec des doubles négations, vous n’allez pas ne pas adorez les valeur booléennes.
constA = trueconstB = falsevarresult = A == BMessageBox.information(result ) // affiche false , true n'est pas égale à falseresult = A != BMessageBox.information(result ) // affiche true , true est bien 'pas égal' à falseresult = A == AMessageBox.information(result ) // affiche true , true est bien à trueresult = A != AMessageBox.information(result ) // affiche true , true n'est pas 'pas égal' à trueresult = A && BMessageBox.information(result ) // affiche false , au moins une valeur (B) est falseresult = A && AMessageBox.information(result ) // affiche true aucune valeur n'est falseresult = A || BMessageBox.information(result ) // affiche true au moins une valeur (A) est trueresult = B || BMessageBox.information(result ) // affiche false aucune valeur n'est true
Comparer des valeurs autre que booléennes :
Les opérateurs booléens permettent de comparer tout un tas de combinaisons de variables.
⚠️ ne pas confondre le symbole d’assignation = avec l’opérateur booléen == ⚠️
result = 10 == 5MessageBox.information(result ) // affiche false 10 n'est pas égal à 5result = (2 + 2 )== 5MessageBox.information(result ) // affiche false 4(2+2) n'est pas égal à 5result =(2 + 2 ) != 5MessageBox.information(result ) // affiche true 4(2+2) est bien différent de 5// comparaisons de quantités : result = 3 < 5MessageBox.information(result ) // affiche true result = 10 < 5MessageBox.information(result ) // affiche false// comparaisons de string : result = "A" == "A"MessageBox.information(result ) // affiche true la string "A" est identique à "A"result = "abcd" == "xyz"MessageBox.information(result ) // affiche false les deux string ne sont pas égales
MAIS A QUOI ça sert ???
La syntaxe booléenne va être extrêmement utile lorsque nous allons utiliser les mots if et else
nodes = selection.selectedNodes()if (nodes.length < 1 ){MessageBox.information("veuillez selectionner au moins 1 node )}
C’est avec les propositions booléennes qu’on va pouvoir créer des conditions à vérifier et structurer toute l’arborescence conditionnelle du code
Les objets sont comme des tableaux, mais des tableaux un peu spéciaux car leur ligne peut aussi contenir des tableaux. C’est un type très très utile pour stocker des données et les manipuler toutes ensembles. Les objets repose sur un systeme de “clef:valeur,” exactement comme dans un tableau à deux colonnes.
Si vous voulez vous créer une ficher perso D&D c’est le type de variable qu’il vous faut :
Les objets simples :
Mettons qu’on veuille créer un nouveau personnage avec des stats de base
Nom
MonToutou
Race
Labrador
Force
100
Agilité
10
Cri
“ouaf”
On peut traduire le tableaux ci dessus en déclarant une variable de type Object
Dès la déclaration d’un object on peut définir sa structure. Vous remarquerez que les données de l’objet sont contenu dans des balises {} comme pour les fonctions.
pour séparer “les colonnes du tableau” on utilise le symbole “:”
pour séparer les “lignes du tableau” on utilise “,”
⚠️ attention la dernière ligne ne doit pas avoi de , à la fin ⚠️
Afficher une valeur de l’objet :
une foi l’objet déclarer on va pouvoir acceder à ce qu’on appel ses propriétés ou attribus par l’intermédiaire de “.”
Le type array fait partie , avec le type ‘object’, des types de variables “composées”
Ces variables qui contiennent d’autres variables.
Les array sont des listes de variables avec un numéro appelé “index”. On déclare la valeur d’une array en mettant une série de valeurs séparées par des “,” entre parenthèses “[]”.
Declaration d’une Array
varmy_array = ["A","B","C"]
Une array peut contenir plusieur type de valeurs :
Appel d’une array avec index : Les array sont comme des immeubles. Chaque étage contient une valeur qu’on appel en l’appelant un certain “index” de l’array (numéro de l’étage). Comme dans les ascenceur on commence par 0 pour la première valeur 1 pour le deuxieme ect… on appel un index ajoutant [index] après le nom de la variable.
Cette “valeur d’étage” peut aussi être une variable de type “int”
varmy_array = ["A","B","C"]varetage = 1MessageBox.information(my_array[etage]) // affiche B
Obtenir le nombre d’éléments : Array.length
Pour afficher le nombre d’éléments dans une array on utilise une propriété native des array : “length”
Pour acceder à une propriété d’une variable on utilise son nom , suivi d’un “.” suivi du nom de la propriété :
varmy_array = ["A","B","C"]MessageBox.information(my_array.length) // affiche 3 , car il y a 3 éléments dans la liste
Modifier une Array
Pour ajouter un élément à la fin de l’array on utilise la méthode native “push”
On accède à une méthode native comme à une propriété via le “.” . Une méthode se comporte comme une fonction et donc il faudra lui passer des arguments, dans le cas de push : la valeur à ajouter.
varmy_array = ["A","B","C"]my_array.push("D")MessageBox.information(my_array) // affiche A , B , C , D
On peut également ajouter un élément au début de l’array avec la méthode “shift”
varmy_array = ["A","B","C"]my_array.shift("D")MessageBox.information(my_array) // affiche D , A , B , C
Les string sont des chaines de charactères. En informatique, un charactère est un symbole graphique avec un code spécial. Il peut s’agir d’une lettre, d’un chiffre ou même d’un émoticône. La plupart des touches du clavier correspondent à un charactère ou “char”.
👉 Une string est donc une liste de char. C’est LE type qui s’occupe de tout ce qui est valeurs textuelles en programmation.
Déclarer une string
On déclare une valeur string en mettant une serie de charactère entre guillemets. Ces guillemets sont là pour dire à l’ordinateur qu’il s’agit d’une valeur et non d’instructions de code. C’est exactement l’usage qu’on en fait lorsque qu’un personnage parle dans un roman. On utilise les guillemet pour distinguer la voix du narrateur de celle du personnage qui parle.
Les variables avec des valeurs de type int ou “integer” contiennent des nombres entiers : 0,1,2,3,4,5…999999 donc des valeurs numériques sans décimales
Ces variables peuvent être combinées entre elle avec les opérateurs mathématiques que l’on connait
opération
symbole dans le code
addition
+
soustraction
–
multiplication
*
division
/
modulo (reste de la division)
%
constA = 4constB = 2varresult = A + BMessageBox.information(result)// affiche 6varresult = A - BMessageBox.information(result)// affiche 2varresult = A * BMessageBox.information(result)// affiche 8varresult = A / BMessageBox.information(result)// affiche 2varresult = A % BMessageBox.information(result)// affiche 0// comme en math on peut également utiliser des parenthèses :varresult = ( A + B ) * BMessageBox.information(result)// affiche 12
💲FLOAT
Les variables avec des valeurs de type float contiennent des nombres décimaux :
1.5 30.459 0.9999 ( on n’utilise pas le symbole “,” mais “.” comme les anglais)
Ces variables peuvent être combinées entre elle avec les mêmes opérateurs mathématiques que les valeurs de type int.
Les Classes sont aux fonctions ce que les objets sont aux variables simples : une classe est un groupement de fonctions appelées “méthodes” et de variables appelées “propriétés”. C’est un mélange entre une fonction ( avec des arguments ) et un objet (fonctionnement en clef valeur accessible par des . )
Lorsque que vous utilisez l’api Harmony vous ne faites qu’utiliser des classes.
Déclarer une classe
Hors des script harmony nous avons droit d’utiliser le mots clef class
classmy_class(){}
mais dans harmony le mots clef class est interdit et nous sommes contraints d’utiliser le mots clef function à la base. Le resultat est le même mais cela peut vraiment prêter à confusion au début.
Avec l’exemple suivant , pouvez vous comprendre à quoi sert une classe ?
functionAnimal(_type,_sound ){this._type= _typethis._sound = _soundthis.make_sound= function(){MessageBox.information(this._sound ) }this.talk= function(){MessageBox.information("Hello ! i'm a "+this._type) }}varmedor = newAnimal("dog","ouaf")medor.talk()// affiche hello ! i'm a dog medor.make_sound()// affiche ouafvarmimi = newAnimal("chat","miaou")mimi .talk()// affiche hello ! i'm a catmimi .make_sound()// affiche miaou
On voit deux nouveaux mots clefs “this” à l’intérieur de la déclaration et “new”
new permet d’instancier une classe. Instancier une classe revient à créer une copie de la classe en suivant son plan et à reset tout ses propriétés.
Une instance est comme objet sauf qu’elle est unique, elle va pouvoir avoir ses propres valeurs de propriétés et évoluer le long du code. C’est typiquement comme cela que l’on code le comportement d’un enemie dans un jeux.