Académie
Premiers pas (Python)
Des variables, qu'est ce que c'est ?

Des variables, qu'est ce que c'est ?

Étape 4

Nous avons appris à écrire des chaînes de caractères. Mais, pour réaliser un jeu, il va y avoir une notion importante à connaitre : les variables.

Effacez votre code (vous pouvez le sauver dans un autre fichier si souhaitez le réutiliser plus tard), et mettez ce code à la place. Pensez à sauvegarder pour l'executer sur votre Gamebuino.

from gamebuino_meta import begin, waitForUpdate, display, buttons, color

while True:
    waitForUpdate()
    display.clear()
    
    name = "Bob"
    
    display.print("Je m'appelle ")
    display.print(name)
    
    display.print("\n")
    display.print("\n")
    
    name = "Jack"
    
    display.print("Je m'appelle ")
    display.print(name)

Deux phrases sont affichées à l'écran. En observant le code, vous remarquerez peut-être que les instructions pour afficher le texte sont les mêmes ! La seule différence est que nous utilisons ce qu'on appelle une variable.

Mais, à quoi ça sert ?

Une variable, comme son nom l'indique, est susceptible de changer. Elle a un nom, ici name, ainsi qu'une valeur. Sa valeur est tout d'abord égale à "Bob". display.print(name) affiche donc "Bob" à l'écran. Ensuite, nous modifions sa valeur pour qu'elle devienne "Jack". display.print(name) affiche désormais "Jack" à l'écran !

Il y a tout de même une différence : quand on utilise display.print pour afficher une variable, on ne met pas de guillemets (sinon, le programme comprendrait qu'il s'agit d'une chaine de caractères et afficherait littéralement name à la place de la valeur de la variable)

Challenge #3

Essayer de modifier ce code pour afficher d'autres prénoms à la place de « Bob » et « Jack ». C’est très simple ! Mais allons un peu plus loin. Essayez de créer une deuxième variable que nous appellerons « score ». Enfin, essayer d’afficher le résultat suivant à l’écran, en vous souvenant de tout ce que nous avons appris jusque-là :

Je m’appelle Bob

Mon score est 15

Je m’appelle Jack

Mon score est 8

Besoin d'aide ?

  • Le principe est le même que pour l'exemple ci-dessus, sauf que nous avons désormais 2 variables. Si vous respectez la règle de l'ordre des instructions, vous devriez y arriver
  • Vous pouvez utiliser le saut de ligne vu à l'étape précédente : display.print("\n")
  • Vous pouvez aussi changer la couleur du texte avec : display.setColor(color.BLUE)

Résultat attendu

Solution

Voir
from gamebuino_meta import begin, waitForUpdate, display, buttons, color

while True:
    waitForUpdate()
    display.clear()
    
    name = "Bob"
    score = 15
    
    display.print("Je m'appelle ")
    display.print(name)
    
    display.print("\n")
    
    display.print("Mon score est ")
    display.print(score)
    
    display.print("\n")
    display.print("\n")
    
    name = "Jack"
    score = 8
    
    display.print("Je m'appelle ")
    display.print(name)
    
    display.print("\n")
    
    display.print("Mon score est ")
    display.print(score)

Explications

Nous avons tout d'abord défini nos deux variables : name et score. Petite différence : quand il s'agit d'un nombre, et non d'une chaîne de caractères, il ne faut pas mettre de guillemets ! Ensuite, nous avons écrit nos deux phrases, en y implémentant nos variables, ainsi qu'un saut de ligne. Puis nous avons modifié les valeurs des deux variables, et à nouveau appelé les instructions pour écrire nos phrases. Les deux phrases s'affichent à nouveau, mais avec des valeurs différentes !

Aller plus loin

Amusez-vous ! Dans notre exemple, tout est en bleu, mais vous pouvez essayer d'utiliser des couleurs différentes. Nous allons beaucoup utiliser les variables par la suite, donc tentez d'en créer d'autres afin de bien comprendre leur fonctionnement, pour par exemple afficher le nombre de vies de votre joueur (nous souhaitons faire un jeu après tout !), ou d'autres informations...

En manque d'inspiration ? Regardez ce que nous avons fait :

Voir
from gamebuino_meta import begin, waitForUpdate, display, buttons, color

while True:
    waitForUpdate()
    display.clear()
    
    name = "Brian"
    score = 15
    lives = 3
    
    display.setColor(color.BLUE)
    display.print(name)
    
    display.setColor(color.GREEN)
    display.print(" (vies : ")
    display.setColor(color.RED)
    display.print(lives)
    display.setColor(color.GREEN)
    display.print(")")
    
    display.print("\n")
    display.print("\n")
    
    display.setColor(color.WHITE)
    display.print("Score : ")
    display.print(score)
    
    display.print("\n")
    display.print("\n")
    
    lives = 2
    
    display.print("J'ai perdu une vie !")
    
    display.print("\n")
    display.print("\n")
    
    display.setColor(color.GREEN)
    display.print("Vies restantes : ")
    display.setColor(color.RED)
    display.print(lives)

Notez qu'une variable, comme son nom l'indique, n'est pas figée ! Ici, nous avions 3 vies au début, puis nous en avons perdu une au cours du programme. Nous affichons à la fin la nouvelle valeur ! Le plus important est de respecter l'ordre des instructions.

C'est bien beau d'écrire du texte, mais si nous programmions un vrai jeu maintenant ?

Etape suivante