Avant d’aborder les variables je souhaiterais vous parler des commentaires.
Les commentaires
Ils permettent d’insérer des mémos dans votre code.
Tout ce qui se situe après des commentaires sur la même ligne ne sera pas exécuté.
On ajoute un commentaire en tapant ceci — – taper deux fois la touche moins sans faire d’espace – AltGr + 6, ou al touche (-) du pad numérique
Exemple avec 1 commentaire :
-- je suis un commentaire, je ne suis pas pris en compte pendant l'exécution print("Bonjour")
Sortie console :
Bonjour |
On peut aussi le mettre après du code exécuté :
print("Bonjour") -- je suis un commentaire !
Sortie console :
Bonjour |
Exemple démonstration :
-- la fonction print() sert à écrire dans la console print("Bonjour, vous allez bien ?") -- Question -- la fonction print() seule fait un saut de ligne print() -- print("non") print("Oui merci, et vous ?") -- Réponse
Sortie console :
Bonjour, vous allez bien ? Oui merci, et vous ? |
Plutôt pratique non ?
Vous avez remarqué que le — print (“non”) n’a pas été exécuté ! Cela nous permet donc de décider d’exécuter ou non une partie de notre code sans l’effacer et cela vous sera très utile !
Les Variables (Simples)
Que sont les variables ? Au travers de ce chapitre, nous allons comprendre ce qu’elles représentent et comment les créer.
Une variable, c’est ce qui va nous permettre de stocker des valeurs. Ces valeurs peuvent alors être modifiées à notre guise vu qu’elles sont variables… Ces variables peuvent être des nombres, pour stocker par exemple, dans votre jeu la force de votre héros, ainsi que ses points de vie, son endurance, etc. Elles peuvent également contenir du texte, pour stocker son nom, son prénom, etc.
Elles peuvent également contenir un interrupteur (bool) qui peut être soit vrai ou faux.
À quoi cela peut-il servir dans notre jeu ? Par exemple est-ce que mon héros est fatigué ? Est-ce qu’il fait encore jour ?
Toutes ces variables vont donner vie à notre code et surtout les futurs jeux que nous allons créer ensemble.
Pour créer une variable et lui attribuer une valeur il faut procéder comme ceci :
maVariable = valeur
Se lit :
ma variable du nom maVariable vautcette valeur |
Lorsque le programme exécutera le code, il stockera alors cette variable et sa valeur en mémoire.
Les noms de variables sont libres, vous pouvez alors la nommer comme bon vous semble.
Cependant attention ! Les noms suivants sont utilisés par Lua et sont donc réservés :
and break do else elseif end false for if
in local nil not repeat then return true or
until while function
Les variables de Nombres (number)
Les nombres peuvent être stockés dans des variables de type(number) ce sont donc des variables numériques.
Syntaxe :
maVariable = 1
Exemple démonstration :
jour = 27 mois = 06 annee = 1962 print(jour) print(mois) print(annee)
Sortie console :
27 06 1962 |
Print plusieurs variables sur une seule et meme ligne
jour = 27 mois = 06 annee = 1962 print(jour, mois, annee)
27 06 1962 |
Ceci est bien pratique, surtout lorsque l’on veut trouver une erreur ou faire des traces dans la console compréhensible.
La virgule indique une autre instruction à la fonction print(), celle-ci ajoute avec un espace entre les valeurs les plusieurs variables qu’on lui demande de nous afficher dans la console.
! ATTENTION !
Les variables de nombres peuvent être des nombres entiers comme des nombres flottants (décimaux).
Pour un nombre décimal (float) on utilise un point . pour désigner un nombre décimal.
Cela pour deux raisons, la première, car les virgules aux US sont utilisées pour séparer les milliers et que dans le langage LUA la virgule
,
sers surtout à séparer des instructions !
Le piège à éviter :
pi = 3,14 print(pi)
Sortie Console :
3 |
14 est considéré comme étant une autre instruction et elle est donc mise de côté, car la virgule indique une seconde instruction après celle-ci.
Alors pi = 3
et 14
est attendu pour une autre instruction (elle attend une autre variable par exemple…) Alors soyez vigilant. =)
il faut donc TOUJOURS utiliser un point
.
pour les nombres décimaux et pas de virgules !
Correction :
pi = 3.14 print(pi)
Sortie console :
3.14 |
On peut aussi effectuer des calculs entre plusieurs variables numériques :
longueur = 5 largeur = 2 -- Rappel : calcul d'une surface = L*l surface = longueur * largeur print(surface)
Sortie console :
10 |
un autre exemple :
miles = 50 vitesse = miles / 0.6215 print(miles) print(vitesse)
Sortie console :
50 80.450522928399 |
Le mile et le km (kilomètre) sont deux unités de mesures de longueur dans le système métrique. Pour convertir une longueur en mile en kilomètre, on multiplie par 1,609 ou on divise par 0,6215
encore autre exemple :
poids = 72.4 taille = 1.82 imc = poids / (taille*taille) print(imc)
Sortie console :
21.857263615505 |
imc = Indice de masse corporelle, formule = poids(kg) / taille²(m²)
source : https://fr.wikipedia.org/wiki/Indice_de_masse_corporelle
Les opérateurs arithmétiques
Les binaires
+ | addition |
– | soustraction |
* | multiplication |
/ | division |
% | modulo : le restant d’une division euclidienne |
^ | élévation : la puissance |
l’unaire (changement de signe)
– | négation |
Exemple :
x = 2 y = 3 print("x = 2 et y = 3") print("-- addition : x + y") print(x + y) print("-- soustraction : x - y") print(x - y) print("-- multiplication : x * y ") print(x * y) print("-- division : x / y") print( x / y) print("-- modulo : x % y") print( x % y) print("-- élévation : x ^ y") print( x ^ y) print("-- négation : -x ") print( -x )
Sortie console :
x = 2 et y = 3 — addition : x + y 5 — soustraction : x – y -1 — multiplication : x * y 6 — division : x / y 0.66666666666667 — modulo : x % y 2 — élévation : x ^ y 8 — négation : -x -2 |
Les variables de Textes (string)
Les variables de textes type(string) sont enfermés dans des guillemets, via la touche 3.
" "
Syntaxe :
maVariable = "mon texte"
Exemple démonstration :
nom = "Nolan" prenom = "Bushnell" print(nom, prenom)
Sortie console :
Nolan Bushnell |
Une variable string peut contenir du texte et donc des phrases complexe.
Exemple avec une Phrase :
monTexte = "Nolan Kay Bushnell, est né le 5 février 1943 !" print(monTexte)
Sortie console :
Nolan Kay Bushnell, est né le 5 février 1943 ! |
Les espaces sont aussi des caractères :
nom = "Nolan" prenom = " Bushnell" print(nom) print(prenom)
Sortie console :
Nolan Bushnell |
Les variables Booléennes (boolean) : Vrai / Faux
Un booléen ou bool en anglais, est un interrupteur qui sert à contrôler une condition (une vérité). Un booléen se caractérise par true ou false il est de type(boolean) .
Syntaxe VRAI :
maVariable = true
Syntaxe FAUX :
maVariable = false
Exemple démonstration VRAI :
monBooleen= true print(monBooleen)
Sortie console :
true |
Exemple démonstration FAUX :
monBooleen = false print(monBooleen)
Sortie console :
false |
Les variables vides (nil)
Il existe aussi un type de variable vide soit le type(nil) mais ça veut dire quoi ?
Surtout à quoi ça sert ?
Une variable vide, c’est une variable qui existe, mais qui ne contient rien…
De ce fait elle renverra toujours une valeur dite “vide” soit nil en anglais.
Par défaut une variable est vide !
C’est utile pour effectuer des test logique, qu’on abordera plus tard également, mais c’était important que vous les connaissiez.
Syntaxe :
maVariable = nil
Exemple avec nil :
maVariableVide = nil print(maVariableVide)
Sortie console :
nil |
Syntaxe sans rien :
maVariable
Exemple sans rien :
maVariableVide print(maVariableVide)
Sortie console :
nil |
Les 8 types de variables LUA qui existent :
Les variables simples que nous venons de voir :
- number
- string
- boolean
- nil
Les variables complexes que nous aborderons bientôt :
- function
- table
Puis celles que nous n’aborderons pas dans les bases… (niveau avancées) :
- userdata
- thread
Exercice TP :
Créer et Imprimer chacun des types de variables que nous venons de voir ! type texte (string) type nombres (number) type décimal (number) type booléen (boolean), une de valeur Vrai et une autre avec une valeur Fausse type nil (vide) |
Solution TP :
monAge = 35 maTaille = 1.85 monNom = “Cédric” jeSuisMort = false JeSuisVivant = true nomDeMaFemme = nil print(monAge) print(maTaille) print(monNom) print(jeSuisMort) print(JeSuisVivant) print(nomDeMaFemme)
sortie console :
35 1.85 Cédric false true nil |
Si vous avez réussi tant mieux, sinon, relisez attentivement la solution pour comprendre vos erreurs éventuelles et retentez ensuite l’exercice sans vous aider (sans copier).
Copier un code ne sert à rien, il vous faut le comprendre et le taper vous-même pour bien l’assimiler. C’est très important ! ! !
Bonus
Comme on peut séparer nos print avec une virgule pour plusieurs isntructions, on peut aussi assigner plusieurs variables sur une même ligne :
x, y, z = 10, 20, 15 print(x) print(y) print(z) print(x, y, z)
sortie console :
10 20 15 10 20 15 |
la virgule , sépare les variables !
On peut exécuter plusieurs instructions sur une même ligne grâce au chunk :
le chunck c’est le point virgule :
;
exemple :
x = 10 y = 20 z = 15 print(x); print(y); print(z); print(x + y + z)
sortie console :
10 20 15 45 |
Le point virgule ; sépare les instructions ! L’unité d’exécution ; de Lua est appelée « chunk ».
On peut écrire des commentaires sur plusieurs lignes :
--[[ ceci est un commentaire sur plusieurs lignes ! C'est assez pratique pour détailler votre code =) ]]--
La syntaxe –[[ ]]– ouvre et ferme un commentaire sur une ou plusieurs lignes.
On peut connaître le type d’une variable :
monChiffre = 7 monTexte = "Sept est mon chiffre porte bonheur" maChance = true monGain = nil -- print(type(monChiffre)) print(type(monTexte)) print(type(maChance)) print(type(monGain))
sortie console :
number string boolean nil |
La fonction type() renvois le type d’une variable.
Cette valeur est une chaîne de caractère (string).
C’est pourquoi nous pouvons print() le type() car il s’agit d’un texte (string).
En Lua, on peut changer le type d’une variable très facilement :
Lua est un langage à typage dynamique. Cela signifie que c’est le type de la valeur que contient une variable qui donne son type.
Dans d’autres langages, les variables sont d’abord typés avant d’avoir une valeur qui correspond à son type.
exemple :
maVariable = "test" print(type(maVariable)) maVariable = 10 print(type(maVariable)) maVariable = true print(type(maVariable)) -- etc.
sortie console :
string number boolean |
Dans l’exemple la variable maVariable change de type à volonté…
C’est pratique, mais ça peut facilement vous induire en erreur alors attention, essayez de ne pas le faire, il est plus sage de recréer une nouvelle variable… sauf si c’est réellement nécessaire. =)
Maintenant, rendez-vous au prochain chapitre où nous verrons comment mettre bout à bout plusieurs chaînes de caractères (des string) dans une variable.