Menu
Coddy logo textTech

Visualizzare le uscite

Fa parte della sezione Logica e flusso del percorso Lua di Coddy. Lezione 31 di 54.

challenge icon

Sfida

Facile

Migliora l'esperienza utente del gioco mostrando al giocatore tutte le uscite disponibili dopo aver mostrato la descrizione della stanza.

Ti vengono fornite le variabili startingRoom, gardenRoom e player della sfida precedente.

Modifica il ciclo del gioco per mostrare le uscite disponibili:

  • Stampa la descrizione della stanza attuale del giocatore
  • Stampa "Exits:" su una nuova riga
  • Usa pairs() per scorrere la tabella exits della stanza attuale
  • Per ogni uscita, stampa " - " (due spazi, un trattino e uno spazio) seguito dal nome della direzione
  • Stampa il prompt "> " (il simbolo maggiore seguito da uno spazio) senza andare a capo
  • Leggi il comando dell'utente usando io.read()
  • Controlla se il comando corrisponde a una chiave nella tabella exits della stanza attuale
  • Se corrisponde, aggiorna player.currentRoom assegnandogli la stanza memorizzata in quella uscita
  • Se il comando non corrisponde a nessuna uscita e non è "quit", stampa "You can't go that way."
  • Se il comando è "quit", imposta gameRunning su false per uscire dal ciclo

Il ciclo dovrebbe continuare finché l'utente non digita "quit".

Formato dell'output previsto:

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

Provalo tu

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

-- Connect rooms
startingRoom.exits["north"] = gardenRoom
gardenRoom.exits["south"] = startingRoom

-- Player
local player = {
    currentRoom = startingRoom
}

-- Game loop
local gameRunning = true

while gameRunning do
    print(player.currentRoom.description)
    io.write("> ")
    local command = io.read()
    
    if command == "quit" then
        gameRunning = false
    elseif player.currentRoom.exits[command] then
        player.currentRoom = player.currentRoom.exits[command]
    else
        print("You can't go that way.")
    end
end

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore Lua online