Menu
CoddyTech

Déplacer le joueur

Fait partie de la section Logique et déroulement du programme du Journey Lua de Coddy. Leçon 29 sur 54.

challenge icon

Défi

Facile

Implémentez le système de déplacement qui permet au joueur de naviguer entre les pièces en comparant sa saisie aux sorties disponibles.

Les variables startingRoom, gardenRoom et player de l’exercice précédent vous sont fournies.

Modifiez la boucle de jeu pour gérer les commandes de déplacement :

  • Le code de démarrage relie les pièces : east mène de la bibliothèque au jardin et west permet de revenir
  • Affichez la description de la pièce où se trouve le joueur
  • Affichez l’invite "> " (signe supérieur suivi d’une espace) sans saut de ligne
  • Lisez la commande de l’utilisateur avec io.read()
  • Vérifiez si la commande correspond à une clé de la table exits de la pièce actuelle
  • Si c’est le cas, mettez à jour player.currentRoom avec la pièce associée à cette sortie
  • Si la commande est "quit", définissez gameRunning sur false pour quitter la boucle

La boucle doit continuer jusqu’à ce que l’utilisateur saisisse "quit".

Remarque : Comme io.write("> ") n’ajoute pas de saut de ligne, la ligne de sortie suivante (la description de la pièce) apparaît immédiatement après l’invite, sur la même ligne dans le flux de sortie brut. Chaque itération de la boucle produit : la description de la pièce sur sa propre ligne, puis > sans saut de ligne ; la description suivante continue donc sur cette même ligne.

Format de sortie attendu (entrées : east, puis quit) :

You find yourself in a dusty library filled with ancient books and scrolls.
> A hidden garden with overgrown plants and a small fountain.
> 

Essayez vous-même

-- Définitions des pièces
local startingRoom = {
  description = "You find yourself in a dusty library filled with ancient books and scrolls.",
  exits = {}
}

local gardenRoom = {
  description = "A hidden garden with overgrown plants and a small fountain.",
  exits = {}
}

-- Définir les sorties avec east / west
startingRoom.exits = {
  east = gardenRoom
}

gardenRoom.exits = {
  west = startingRoom
}

-- Joueur
local player = {
  currentRoom = startingRoom
}

-- Boucle de jeu
local gameRunning = true

-- TODO: Écrire la boucle while ici

Toutes les leçons de Logique et déroulement du programme

Entraînez-vous par vous-même : Compilateur Lua en ligne