Aprende Lua
Un curso de Lua online, gratis e interactivo. Escribes Lua en cada lección, con pistas de IA cuando algo te devuelve nil, y un certificado gratis al terminar.
58,210+ codders inscritos
- Apto para principiantes
Ayuda de codificación con IA
Lecciones interactivas prácticas
Narración de audio en cada lección
Cuestionarios para poner a prueba tu conocimiento
Certificado gratuito de finalización
Programa
Sección 1
Fundamentals
Empezar secciónEmpezarExpandirContraerThe first section in Lua for absolute beginners.Introducción
3 lecciones216- 01El lenguajeReto
- 02¡Hola mundo!RetoQuiz
- 03ComentariosQuiz
Variables y tipos de datos
8 lecciones754- 01¿Qué es una variable?RetoQuiz
- 02NúmerosRetoQuiz
- 03StringsRetoQuiz
- 04BooleanosRetoQuiz
- 05El valor 'nil'RetoQuiz
- 06La función type()RetoQuiz
- 07Convenciones de nomenclaturaQuiz
- 08Resumen - Perfil de personajeReto
Operadores 1: Aritmética y Concatenación
6 lecciones635- 01Operadores aritméticosRetoQuiz
- 02Operador de móduloRetoQuiz
- 03Operador de exponenciaciónRetoQuiz
- 04Concatenación de stringsRetoQuiz
- 05Precedencia de operadoresRetoQuiz
- 06Resumen: Cálculos sencillosReto
Operadores 2 Relacionales y Lógicos
8 lecciones651- 01Operadores de IgualdadRetoQuiz
- 02Operadores RelacionalesRetoQuiz
- 03El Operador 'and'RetoQuiz
- 04El Operador 'or'RetoQuiz
- 05El Operador 'not'RetoQuiz
- 06Evaluación de CortocircuitoQuiz
- 07Valores Truthy y FalsyQuiz
- 08Resumen - Lógica SimpleReto
Salida básica
9 lecciones954- 01Imprimir literalesRetoQuiz
- 02Imprimir variablesRetoQuiz
- 03Imprimir múltiples valoresRetoQuiz
- 04Combinar cadenas y variablesRetoQuiz
- 05La función tostring()RetoQuiz
- 06EntradaRetoQuiz
- 07Conversión de tipos (Cast)RetoQuiz
- 08Resumen - Informe de estadoReto
- 09Resumen - Hasta 120Reto
Proyecto: Mostrar estadísticas del personaje
Proyecto5 lecciones1- 01Mensaje de bienvenidaReto
- 02Declarar estadísticas del personajeProyecto
- 03Mostrar estadísticas básicasProyecto
- 04Añadir un flag booleanoProyecto
- 05Resumen finalProyecto
Lógica condicional básica
4 lecciones423- 01La sentencia if-thenRetoQuiz
- 02La sentencia if-then-elseRetoQuiz
- 03La sentencia elseifRetoQuiz
- 04Resumen - Cofre del tesoroReto
Fundamentos de manipulación de strings
6 lecciones637- 01string.len()RetoQuiz
- 02string.upper & string.lowerRetoQuiz
- 03string.sub()RetoQuiz
- 04string.rep()RetoQuiz
- 05string.find()RetoQuiz
- 06Repaso - Formatear nombre de usuarioReto
Fundamentos de las funciones
6 lecciones636- 01Declarar una funciónRetoQuiz
- 02Llamar a una funciónRetoQuiz
- 03Funciones con parámetrosRetoQuiz
- 04Funciones con múltiples parámetrosRetoQuiz
- 05La sentencia 'return'RetoQuiz
- 06Repaso - Calculadora de áreaReto
Tablas Parte 1: Estilo de lista
8 lecciones752- 01¿Qué es una tabla?Quiz
- 02Crear una tablaRetoQuiz
- 03Acceder a elementos por índiceRetoQuiz
- 04Modificar elementos por índiceRetoQuiz
- 05El operador de longitud '#'RetoQuiz
- 06table.insert()RetoQuiz
- 07table.remove()RetoQuiz
- 08Resumen - Gestionar miembros del grupoReto
Tablas 2: Estilo Diccionario
7 lecciones648- 01Pares Clave-ValorQuiz
- 02Creación de Tablas Estilo DiccionarioRetoQuiz
- 03Acceso - Notación de CorchetesRetoQuiz
- 04Acceso con Notación de PuntoRetoQuiz
- 05Añadir y Modificar ParesRetoQuiz
- 06Eliminar Pares con nilRetoQuiz
- 07Resumen - Propiedades de ElementosReto
Conceptos básicos de bucles
6 lecciones636- 01El bucle whileRetoQuiz
- 02El bucle repeat-untilRetoQuiz
- 03El bucle for numéricoRetoQuiz
- 04Bucle for con pasoRetoQuiz
- 05La sentencia 'break'RetoQuiz
- 06Resumen - Cuenta regresivaReto
Proyecto: Tienda de pociones sencilla
Proyecto6 lecciones1- 01Configuración del proyectoReto
- 02Añadir una pociónProyecto
- 03Mostrar el inventarioProyecto
- 04Calcular el valor total del stockProyecto
- 05Buscar una poción específicaProyecto
- 06Vender una pociónProyecto
Ámbito de las variables
5 lecciones330- 01Variables globalesQuiz
- 02Variables localesRetoQuiz
- 03¿Por qué usar variables locales?Quiz
- 04Ámbito y bloquesRetoQuiz
- 05Repaso - El acertijo del ámbitoReto
Desafíos finales
3 lecciones3- 01Repaso - Turno del jugadorReto
- 02Repaso - Base de datos simpleReto
- 03Repaso - Suma de números paresReto
Sección 2
Logic & Flow
Empezar secciónEmpezarExpandirContraerDevelop problem-solving skills and create dynamic, interactive programsIteración avanzada de tablas
4 lecciones423- 01Iterar con pairs()RetoQuiz
- 02Iterar con ipairs()RetoQuiz
- 03pairs() vs. ipairs()RetoQuiz
- 04Resumen - Ficha de personajeReto
Más funciones de la librería table
5 lecciones430- 01table.concat()RetoQuiz
- 02Construcción de tablas y unpack()RetoQuiz
- 03table.sort()RetoQuiz
- 04Ordenamiento personalizado con funcionesQuiz
- 05Repaso - Tabla de puntuaciones altasReto
Conceptos avanzados de funciones
6 lecciones539- 01Retorno de múltiples valoresQuiz
- 02Funciones variádicas (...)RetoQuiz
- 03Funciones como valores de primera claseRetoQuiz
- 04Funciones anónimasRetoQuiz
- 05¿Qué es un Closure?RetoQuiz
- 06Resumen - Manejador de eventos simpleReto
Introducción a las Metatablas
8 lecciones757- 01¿Qué es una Metatabla?Quiz
- 02setmetatable y getmetatableRetoQuiz
- 03El metamétodo __indexRetoQuiz
- 04El metamétodo __newindexRetoQuiz
- 05El metamétodo __tostringRetoQuiz
- 06Metamétodos aritméticos - Parte 1RetoQuiz
- 07Metamétodos aritméticos - Parte 2RetoQuiz
- 08Resumen - Tablas de solo lecturaReto
Proyecto: Motor de aventura de texto
Proyecto8 lecciones1- 01Configuración del proyecto: La habitaciónReto
- 02Conectar habitacionesProyecto
- 03Estado del jugadorProyecto
- 04El bucle del juegoProyecto
- 05Manejo de la entrada del usuarioProyecto
- 06Mover al jugadorProyecto
- 07Manejo de movimientos no válidosProyecto
- 08Mostrar las salidasProyecto
Manejo de errores
3 lecciones216- 01La función error()Quiz
- 02Llamadas protegidas con pcall()RetoQuiz
- 03Resumen - División seguraReto
Manipulación avanzada de cadenas
6 lecciones641- 01string.gsub() para sustituciónRetoQuiz
- 02Introducción a patrones de cadenasRetoQuiz
- 03string.find()RetoQuiz
- 04string.match()RetoQuiz
- 05Iteración con string.gmatch()RetoQuiz
- 06Resumen - Analizador de archivos LogReto
Proyecto: Lista de contactos
Proyecto7 lecciones1- 01Configuración del proyectoReto
- 02El bucle principalProyecto
- 03Añadir un contactoProyecto
- 04Listar todos los contactosProyecto
- 05Buscar un contactoProyecto
- 06Eliminar un contactoProyecto
- 07Manejo de entradas no válidasProyecto
Corrutinas para principiantes
7 lecciones638- 01¿Qué es una corrutina?Quiz
- 02coroutine create y resumeRetoQuiz
- 03Pausar con coroutine.yield()RetoQuiz
- 04resume y yieldRetoQuiz
- 05Comprobar el estado de la corrutinaRetoQuiz
- 06Resumen - Generador de númerosReto
- 07Resumen - Matemática de vectoresReto
Sección 3
Object Oriented Programming
Empezar secciónEmpezarExpandirContraerDiscover how to organize code with classes, objects, and reusable structuresEl concepto de 'self'
5 lecciones532- 01Tablas con funcionesRetoQuiz
- 02'self' explícitoRetoQuiz
- 03La sintaxis de dos puntosRetoQuiz
- 04Punto vs. dos puntosRetoQuiz
- 05Resumen - Punto en movimientoReto
Patrón de prototipo de clase
6 lecciones641- 01El concepto de prototipoRetoQuiz
- 02Vinculación con __indexRetoQuiz
- 03El constructor :new()RetoQuiz
- 04Inicialización de atributosRetoQuiz
- 05Instancias independientesRetoQuiz
- 06Resumen - Fábrica de cochesReto
Estado y Comportamiento de los Objetos
7 lecciones748- 01Variables de InstanciaRetoQuiz
- 02Métodos GetterRetoQuiz
- 03Métodos SetterRetoQuiz
- 04Propiedades CalculadasRetoQuiz
- 05Formateo de StringsRetoQuiz
- 06Comprobaciones de IgualdadRetoQuiz
- 07Resumen - Calificación del EstudianteReto
Proyecto: Banco Digital
Proyecto7 lecciones1- 01Configuración del proyectoReto
- 02Método de depósitoProyecto
- 03Método de retiroProyecto
- 04Obtener saldoProyecto
- 05Información de la cuentaProyecto
- 06Transferir fondosProyecto
- 07Prueba bancaria finalProyecto
Sobrecarga de operadores en POO
5 lecciones531- 01Sumar objetosRetoQuiz
- 02Restar objetosRetoQuiz
- 03Concatenar objetosRetoQuiz
- 04Comparar objetos (<, >)RetoQuiz
- 05Resumen - Matemáticas de la billeteraReto
Fundamentos de la herencia
6 lecciones643- 01Configuración de la herenciaRetoQuiz
- 02Herencia de métodosRetoQuiz
- 03Extender el constructorRetoQuiz
- 04Añadir métodos hijosRetoQuiz
- 05Compartido vs. ÚnicoRetoQuiz
- 06Resumen: Jerarquía de formasReto
Polimorfismo y Sobrescritura
6 lecciones640- 01Sobrescritura de métodosRetoQuiz
- 02Llamar a métodos del padreRetoQuiz
- 03Duck TypingRetoQuiz
- 04Interfaz comúnRetoQuiz
- 05Comprobación de tiposRetoQuiz
- 06Repaso - Roles de empleadosReto
Encapsulamiento
6 lecciones644- 01Convenciones de nomenclaturaRetoQuiz
- 02Closures para privacidadRetoQuiz
- 03Acceso mediante ClosuresRetoQuiz
- 04Tablas de solo lecturaRetoQuiz
- 05Lógica de validaciónRetoQuiz
- 06Resumen - Bóveda seguraReto
Composición y Mixins
6 lecciones642- 01Relación "Tiene-Un"RetoQuiz
- 02DelegaciónRetoQuiz
- 03Mixins simplesRetoQuiz
- 04Aplicación de múltiples MixinsRetoQuiz
- 05Mixins vs. HerenciaRetoQuiz
- 06Resumen - Ensamblaje de robotsReto
Proyecto: Gestor de formas
Proyecto7 lecciones1- 01Configuración del proyectoReto
- 02Clase RectánguloProyecto
- 03Clase CírculoProyecto
- 04Método de perímetroProyecto
- 05Colección de formasProyecto
- 06Área totalProyecto
- 07Filtrar formasProyecto
Patrones de diseño (Lite)
5 lecciones532- 01Funciones FactoryRetoQuiz
- 02Tabla SingletonRetoQuiz
- 03Patrón IteradorRetoQuiz
- 04Observer (Listener)RetoQuiz
- 05Resumen - Logger FactoryReto
Desafíos finales
4 lecciones4- 01Repaso - Sistema de inventarioReto
- 02Repaso - Gestor de usuariosReto
- 03Repaso - Seguimiento de puntuaciónReto
- 04Verificación final de OOPReto
Cursos de Lua
Cursos prácticos de Lua, gratis para empezar en tu navegador.
Desafíos para principiantes - Practica conceptos básicos
PopularPon a prueba tus conocimientos básicos de programación e intenta resolver estos desafíos; usa cualquier lenguaje que quieras. ¡Feliz programación!
Certificado al completar
- 20
- 20
Problemas de programación
PopularPon a prueba tus habilidades de resolución de problemas de programación con los ejercicios de diferentes niveles de dificultad de este curso. Diseñado para programadores con conocimientos previos de la sintaxis básica en cualquier lenguaje de programación.
Certificado al completar
- 32
- 31
Problemas de programación: Volumen 2
Pon a prueba tus habilidades de resolución de problemas de programación con los ejercicios de diferentes niveles de dificultad de este curso. Diseñado para programadores con conocimientos previos de la sintaxis básica en cualquier lenguaje de programación, este curso es una extensión del primer volumen de Problemas de programación.
Certificado al completar
- 25
- 24
Pila - Serie de Estructuras de Datos #1
En este curso, aprenderás sobre la estructura de datos Pila, crearás una Pila desde cero usando tu lenguaje preferido y practicarás desafíos de programación con ella.
- 13
- 6
- 1
Heaps y Colas de Prioridad - Serie de Estructuras de Datos #7
NuevoEn este curso, aprenderás sobre la estructura de datos Heap (la base de las colas de prioridad), crearás un MinHeap desde cero usando tu lenguaje preferido y practicarás desafíos de programación con él.
Certificado al completar
- 14
- 6
- 1
Bootcamp de patrones de estrellas
Pon a prueba tus habilidades de resolución de problemas de programación para aprender a imprimir patrones de estrellas que van desde lo simple hasta lo complejo, involucrando diferentes niveles de bucles anidados, sentencias condicionales y cálculos matemáticos.
- 30
- 28
Por qué aprender Lua con Coddy
- Ejecuta código Lua real en tu navegador. Sin intérprete de Lua que instalar, sin configurar toolchain. Cada lección corre tu script de Lua del lado del servidor y te muestra la salida al instante.
- Lua como se usa en la realidad: variables, control de flujo, funciones, tablas (la única estructura de datos real de Lua), manipulación de strings, metatables y patrones de OOP, manejo de errores. Las bases de Lua que necesitas para Roblox, Love2D o scripting embebido.
- Las pistas de IA te ayudan a depurar tus scripts de Lua y a leer los errores sin arruinarte la respuesta, así tropiezos comunes como el nil indexing o los arreglos que empiezan en 1 se vuelven oportunidades para aprender.
- Certificado gratis de Lua al terminar el curso. Una señal creíble que acompaña los juegos de Roblox, mods o proyectos de scripting embebido que hayas construido.