Menu
Coddy logo textTech

Mover al jugador

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

challenge icon

Desafío

Fácil

Implementa el sistema de movimiento que permite al jugador navegar entre habitaciones verificando su entrada con las salidas disponibles.

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

Modifica el bucle del juego para manejar los comandos de movimiento:

  • Imprime la descripción de la habitación actual del jugador (player.currentRoom.description)
  • Imprime el prompt "> " (signo de 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 es "quit", establece gameRunning a false para salir del bucle

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

Nota: Debido a que io.write("> ") no añade un salto de línea, la siguiente línea de salida (la descripción de la habitación) aparece inmediatamente después del prompt en la misma línea en el flujo de salida sin procesar. Cada iteración del bucle produce: la descripción de la habitación en su propia línea, luego > sin salto de línea, por lo que la siguiente descripción continúa en esa misma línea.

Formato de Salida Esperado (entradas: east, luego quit):

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

Pruébalo tú mismo

-- Game rooms
local startingRoom = {
    description = "You find yourself in a dusty library filled with ancient books and scrolls."
}

local gardenRoom = {
    description = "You step into a beautiful garden with blooming flowers and a gentle breeze."
}

-- Player
local player = {
    currentRoom = startingRoom
}

-- Game loop
local gameRunning = true

while gameRunning do
    print(player.currentRoom.description)
    io.write("> ")
    local command = io.read()
    print("You entered: " .. command)
    
    if command == "quit" then
        gameRunning = false
    end
end

Todas las lecciones de Logic & Flow