Menu
Coddy logo textTech

Mostrar las salidas

Parte de la sección Logic & Flow del Journey de Lua de Coddy — lección 31 de 54.

challenge icon

Desafío

Fácil

Mejora la experiencia de usuario del juego mostrando todas las salidas disponibles al jugador después de mostrar la descripción de la habitación.

Se te proporcionan las variables startingRoom, gardenRoom y player del desafío anterior.

Modifica el bucle del juego para mostrar las salidas disponibles:

  • Imprime la descripción de la habitación actual del jugador
  • Imprime "Exits:" en una nueva línea
  • Usa pairs() para iterar a través de la tabla exits de la habitación actual
  • Para cada salida, imprime " - " (dos espacios, un guion y un espacio) seguido del nombre de la dirección
  • Imprime el prompt "> " (signo mayor que seguido de un espacio) sin un salto de línea
  • Lee el comando del usuario usando io.read()
  • Verifica si el comando coincide con una clave en la tabla exits de la habitación actual
  • Si coincide, actualiza player.currentRoom a la habitación almacenada en esa salida
  • Si el comando no coincide con ninguna salida y no es "quit", imprime "You can't go that way."
  • Si el comando es "quit", establece gameRunning a false para salir del bucle

El bucle debe continuar hasta que el usuario escriba "quit".

Formato de salida esperado:

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
> 

Pruébalo tú mismo

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

Todas las lecciones de Logic & Flow