Menu
CoddyTech

Mover al jugador

Parte de la sección Lógica y flujo 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 desplazarse entre habitaciones comprobando 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 gestionar los comandos de movimiento:

  • El código inicial conecta las habitaciones: east desde la biblioteca lleva al jardín y west lleva de vuelta
  • Imprime la descripción de la habitación actual del jugador
  • Imprime el indicador "> " (signo mayor que seguido de un espacio) sin un salto de línea
  • Lee el comando del usuario usando io.read()
  • Comprueba si el comando coincide con una clave de 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 en false para salir del bucle

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

Nota: Como 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 indicador en la misma línea del flujo de salida sin procesar. Cada iteración del bucle produce: la descripción de la habitación en su propia línea y luego > sin salto de línea, por lo que la descripción siguiente continúa en esa misma línea.

Formato de salida esperado (entradas: east, después 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

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

-- Establece las salidas usando east / west
startingRoom.exits = {
  east = gardenRoom
}

gardenRoom.exits = {
  west = startingRoom
}

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