Lua es un lenguaje de programación fácil y rápido que se utiliza a menudo en juegos, aplicaciones e incluso microcontroladores. Su sintaxis es muy simple, por lo que es ideal para principiantes. Lua se utiliza en proyectos conocidos: por ejemplo, en Roblox, Angry Birds, World of Warcraft y muchos otros juegos.

🎮 Qué vamos a hacer en este artículo
Juntos crearemos una sencilla pero fascinante juego "Adivina el número". Este es un juego de texto en el que el ordenador piensa un número aleatorio, y tú (o el jugador) intentarás adivinarlo. Todo esto se hace con la ayuda de comandos básicos en Lua. Este juego te ayudará a entender cómo funcionan variables, condiciones, ciclos y entrada de datos del usuario.
El programa será completamente funcional, y no solo podrás ejecutarlo, sino también modificarlo o complementarlo. ¿Listo? ¡Vamos! 🚀
🧩 Por qué Lua es ideal para principiantes y desarrolladores de juegos
Sintaxis simple — se lee casi como un texto normal
Mínimo de exceso — escribes la lógica de inmediato, sin «vinculaciones» innecesarias
Inicio instantáneo — copia, pega y ejecuta en línea
Realmente se utiliza en los juegos — por ejemplo, en Roblox y Defold
🛠️ Cómo construir un juego simple paso a paso
Te proponemos empezar con los clásicos: los juegos "Adivina el número".
Lo que hace el juego:
El ordenador piensa en un número del 1 al 10
El jugador intenta adivinar en 3 intentos
El juego dice si has ganado o no
Código listo (se puede insertar en Replit):
math.randomseed(os.time())
local secret = math.random(1, 10)
local attempts = 3
print("Hi! I thought of a number from 1 to 10.")
print("You have " .. attempts .. " attempts to guess!")
while attempts > 0 do
io.write("Enter number: ")
local guess = tonumber(io.read())
if guess == secret then
print("🎉 Hurray! You guessed it!")
break
else
attempts = attempts - 1
if attempts > 0 then
print("❌ Incorrect. Attempts left: " .. attempts)
else
print("😢 Alas, you lost. The number was: " .. secret)
end
end
end🔍 Analizamos en detalle el código del juego «Adivina el número»
math.randomseed(os.time())⏱️ Esta línea «siembra» el generador de números aleatorios con la hora actual. Esto es necesario para que el juego adivine un nuevo número cada vez. Sin ella, el programa elegirá el mismo número cada vez que se ejecute.
local secret = math.random(1, 10)🎯 Con la ayuda de math.random elegimos un número aleatorio del 1 al 10. Este es el número que el jugador debe adivinar.
local attempts = 3📉 Establecemos el número de intentos, en nuestro caso tres.
print("Hi! I thought of a number from 1 to 10.")
print("You have " .. attempts .. " attempts to guess!")💬 Mostramos el saludo y las instrucciones. El operador .. combina cadenas y variables.
while attempts > 0 do🔁 Ejecutamos un ciclo que se ejecutará mientras el jugador tenga al menos un intento.
io.write("Enter number: ")
local guess = tonumber(io.read())⌨️ Solicitamos la entrada. io.read() lee la línea y tonumber() la convierte en un número.
if guess == secret then
print("🎉 Hurray! You guessed it!")
break✅ Si el usuario adivinó el número, felicítalo y sal del ciclo con break.
else
attempts = attempts - 1❌ Si no lo adivinaste, reduce el número de intentos restantes.
if attempts > 0 then
print("❌ Incorrect. Attempts left: " .. attempts)📢 Te informamos de cuántos intentos quedan.
else
print("😢 Alas, you lost. The number was: " .. secret)
end
end
end🏁 Si los intentos han terminado, muestra un mensaje de pérdida y muestra el número correcto.
💡 Lo que aprendes mientras escribes este juego:
Trabajar con variables:
secret,attempts,guessUtilizar entrada/salida:
io.read(),print()Escribir condiciones:
if / else,==Trabajar con ciclos:
whileUsar números aleatorios:
math.random
🎮 Todo esto en el formato de un juego real que puedes ejecutar, modificar y mejorar.
Si quieres aprender a programar de forma humana, sin estrés, con tareas claras y apoyo, ven a Kodik.
📚 Cursos paso a paso de Lua, Python y JavaScript
🤖 Asistencia de IA si algo no está claro
💬 Canal de Telegram, donde los principiantes y los experimentados se ayudan mutuamente
