MÓDULO 1: SCRIPTING

Bucles (Loops)

Los bucles son como repetir una acción en un juego hasta que se cumpla una condición. Por ejemplo: “Mientras el enemigo esté vivo, sigue atacando” o “Repite 10 veces el salto”. En Lua usamos principalmente while y for.


1. Bucle while — Mientras sea verdadero

Ejecuta el código mientras la condición sea true. Se debe actualizar la condición dentro del bucle para evitar bucles infinitos.

local energia = 5

while energia > 0 do
  print("Atacando... Energía restante: " .. energia)
  energia = energia - 1
end

print("¡Energía agotada!")

¡Importante! En Lua se usa do después de la condición y end para cerrar el bucle.


2. Bucle for numérico — Contador clásico

Ideal cuando sabes cuántas veces quieres repetir algo.

-- for variable = inicio, fin, paso do
for i = 1, 5 do
  print("Nivel " .. i .. " completado!")
end

Ejemplo con paso personalizado:

for i = 10, 0, -2 do
  print("Cuenta regresiva: " .. i)
end
print("¡Lanzamiento!")

3. Bucle for con pairs e ipairs (para tablas)

En Lua es muy común recorrer tablas (arrays y diccionarios).

local enemigos = {"Goblin", "Orco", "Dragón"}

for indice, nombre in ipairs(enemigos) do
  print("Enemigo " .. indice .. ": " .. nombre)
end

Diferencia importante:

  • ipairs() → Recorre tablas con índice numérico (en orden)
  • pairs() → Recorre cualquier tabla (no garantiza orden)

4. break y continue (en Lua no existe continue)

break sirve para salir del bucle inmediatamente.

for i = 1, 10 do
  if i == 6 then
    print("¡Encontraste el tesoro en el nivel 6!")
    break  -- Sale del bucle
  end
  print("Explorando nivel " .. i)
end

🛠️ Tu Misión

Prueba esto en lua.org:

  1. Crea un bucle while que cuente desde 10 hasta 1 (cuenta regresiva).
  2. Usa un for para imprimir los números del 1 al 10.
  3. Crea una tabla con 5 nombres de armas y recórrela con ipairs imprimiendo "Arma X: nombre".
  4. Bonus: Haz un bucle for del 1 al 20. Si el número es divisible entre 3, imprime "¡Múltiplo de 3!". Usa break cuando llegues al número 15.