Menu
CoddyTech

Gérer les déplacements invalides

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

challenge icon

Défi

Facile

Ajoutez la gestion des erreurs au système de déplacement afin de fournir un retour lorsque le joueur entre une direction invalide.

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 invalides :

  • Remplacez les sorties est/ouest de l’exercice précédent par des sorties north/south : définissez startingRoom.exits["north"] sur gardenRoom, et gardenRoom.exits["south"] sur startingRoom
  • Affichez la description de la salle 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 à l’aide de io.read()
  • Vérifiez si la commande correspond à une clé de la table exits de la salle actuelle
  • Si elle correspond, mettez à jour player.currentRoom avec la salle enregistrée dans cette sortie
  • Si la commande ne correspond à aucune sortie et n’est pas "quit", affichez "You can't go that way."
  • 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".

Format de sortie attendu :

You find yourself in a dusty library filled with ancient books and scrolls.
> A hidden garden with overgrown plants and a small fountain.
> You can't go that way.
A hidden garden with overgrown plants and a small fountain.
> You find yourself in a dusty library filled with ancient books and scrolls.
> 

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 = {}
}

-- TODO: Relier les pièces par des sorties nord/sud

-- 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