Menu
CoddyTech

Manejo de movimientos no válidos

Parte de la sección Lógica y flujo del Journey de Lua de Coddy. Lección 30 de 54.

challenge icon

Desafío

Fácil

Añade manejo de errores al sistema de movimiento para proporcionar comentarios cuando el jugador introduzca una dirección no válida.

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

Modifica el bucle del juego para gestionar los comandos de movimiento no válidos:

  • Reemplaza las salidas este/oeste del desafío anterior por salidas norte/sur: establece startingRoom.exits["north"] en gardenRoom y gardenRoom.exits["south"] en startingRoom
  • Imprime la descripción de la habitación actual del jugador
  • Imprime la solicitud "> " (signo mayor que seguido de un espacio) sin un salto de línea
  • Lee el comando del usuario mediante io.read()
  • Comprueba si el comando coincide con una clave de la tabla exits de la habitación actual
  • Si coincide, actualiza player.currentRoom con 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 en 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.
> 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.
> 

Pruébalo tú mismo

-- Definiciones de las habitaciones
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: Conecta las habitaciones con salidas al norte y al sur

-- Jugador
local player = {
    currentRoom = startingRoom
}

-- Bucle del juego
local gameRunning = true

-- TODO: Escribe aquí el bucle while

Todas las lecciones de Lógica y flujo

Practica por tu cuenta: Compilador de Lua online