Aprenda Lua
Um curso de Lua online, interativo e gratuito. Você escreve Lua em cada lição, com dicas de IA quando algo dá nil, e um certificado gratuito ao concluir.
58,210+ codders inscritos
- Ideal para iniciantes
Ajuda de codificação com IA
Lições interativas e práticas
Narração em áudio em todas as lições
Questionários para testar seu conhecimento
Certificado grátis de conclusão
Programa
Seção 1
Fundamentals
Começar seçãoIniciarExpandirRecolherThe first section in Lua for absolute beginners.Introdução
3 lições216- 01A LinguagemDesafio
- 02Olá Mundo!DesafioQuiz
- 03ComentáriosQuiz
Variáveis e Tipos de Dados
8 lições754- 01O que é uma Variável?DesafioQuiz
- 02NúmerosDesafioQuiz
- 03StringsDesafioQuiz
- 04BooleanosDesafioQuiz
- 05O Valor 'nil'DesafioQuiz
- 06A Função type()DesafioQuiz
- 07Convenções de NomenclaturaQuiz
- 08Recapitulação - Perfil de PersonagemDesafio
Operadores 1: Aritmética e Concatenação
6 lições635- 01Operadores AritméticosDesafioQuiz
- 02Operador de MóduloDesafioQuiz
- 03Operador de ExponenciaçãoDesafioQuiz
- 04Concatenação de StringsDesafioQuiz
- 05Precedência de OperadoresDesafioQuiz
- 06Recapitulação - Cálculos SimplesDesafio
Operadores 2 Relacionais e Lógicos
8 lições651- 01Operadores de IgualdadeDesafioQuiz
- 02Operadores RelacionaisDesafioQuiz
- 03O Operador 'and'DesafioQuiz
- 04O Operador 'or'DesafioQuiz
- 05O Operador 'not'DesafioQuiz
- 06Avaliação de Curto-CircuitoQuiz
- 07Valores Truthy e FalsyQuiz
- 08Recapitulação - Lógica SimplesDesafio
Saída Básica
9 lições954- 01Imprimindo LiteraisDesafioQuiz
- 02Imprimindo VariáveisDesafioQuiz
- 03Imprimindo Múltiplos ValoresDesafioQuiz
- 04Combinando Strings e VariáveisDesafioQuiz
- 05A Função tostring()DesafioQuiz
- 06EntradaDesafioQuiz
- 07CastDesafioQuiz
- 08Recapitulação - Relatório de StatusDesafio
- 09Recapitulação - Até 120Desafio
Projeto: Exibição de Atributos do Personagem
Projeto5 lições1- 01Mensagem de Boas-vindasDesafio
- 02Declarar Atributos do PersonagemProjeto
- 03Exibir Atributos BásicosProjeto
- 04Adicionar uma Flag BooleanaProjeto
- 05Resumo FinalProjeto
Lógica Condicional Básica
4 lições423- 01A instrução if-thenDesafioQuiz
- 02A instrução if-then-elseDesafioQuiz
- 03A instrução elseifDesafioQuiz
- 04Recapitulação - Baú do TesouroDesafio
Fundamentos de Manipulação de Strings
6 lições637- 01string.len()DesafioQuiz
- 02string.upper & string.lowerDesafioQuiz
- 03string.sub()DesafioQuiz
- 04string.rep()DesafioQuiz
- 05string.find()DesafioQuiz
- 06Revisão - Formatar Nome de UsuárioDesafio
Fundamentos de Funções
6 lições636- 01Declarando uma FunçãoDesafioQuiz
- 02Chamando uma FunçãoDesafioQuiz
- 03Funções com ParâmetrosDesafioQuiz
- 04Funções com Múltiplos ParâmetrosDesafioQuiz
- 05A Instrução 'return'DesafioQuiz
- 06Recapitulação - Calculadora de ÁreaDesafio
Tabelas Parte 1: Estilo de Lista
8 lições752- 01O que é uma Tabela?Quiz
- 02Criando uma TabelaDesafioQuiz
- 03Acessando Elementos por ÍndiceDesafioQuiz
- 04Modificando Elementos por ÍndiceDesafioQuiz
- 05O Operador de Comprimento '#'DesafioQuiz
- 06table.insert()DesafioQuiz
- 07table.remove()DesafioQuiz
- 08Recapitulação - Gerenciar Membros do GrupoDesafio
Tabelas 2: Estilo Dicionário
7 lições648- 01Pares Chave-ValorQuiz
- 02Criando Tabelas Estilo DicionárioDesafioQuiz
- 03Acessando - Notação de ColchetesDesafioQuiz
- 04Acessando com Notação de PontoDesafioQuiz
- 05Adicionando e Modificando ParesDesafioQuiz
- 06Removendo Pares com nilDesafioQuiz
- 07Recapitulação - Propriedades de ItensDesafio
Fundamentos de Loops
6 lições636- 01O Loop whileDesafioQuiz
- 02O Loop repeat-untilDesafioQuiz
- 03O Loop for NuméricoDesafioQuiz
- 04Loop for com PassoDesafioQuiz
- 05A Instrução 'break'DesafioQuiz
- 06Recapitulação - Contagem RegressivaDesafio
Projeto: Loja de Poções Simples
Projeto6 lições1- 01Configuração do ProjetoDesafio
- 02Adicionando uma PoçãoProjeto
- 03Exibindo o InventárioProjeto
- 04Calculando o Valor Total do EstoqueProjeto
- 05Buscando uma Poção EspecíficaProjeto
- 06Vendendo uma PoçãoProjeto
Escopo de Variáveis
5 lições330- 01Variáveis GlobaisQuiz
- 02Variáveis LocaisDesafioQuiz
- 03Por que usar variáveis locais?Quiz
- 04Escopo e BlocosDesafioQuiz
- 05Recapitulação - Desafio de EscopoDesafio
Desafios Finais
3 lições3- 01Revisão - Turno do JogadorDesafio
- 02Revisão - Banco de Dados SimplesDesafio
- 03Revisão - Soma de Números ParesDesafio
Seção 2
Logic & Flow
Começar seçãoIniciarExpandirRecolherDevelop problem-solving skills and create dynamic, interactive programsIteração Avançada de Tabelas
4 lições423- 01Iterando com pairs()DesafioQuiz
- 02Iterando com ipairs()DesafioQuiz
- 03pairs() vs. ipairs()DesafioQuiz
- 04Revisão - Ficha de PersonagemDesafio
Mais Funções da Biblioteca Table
5 lições430- 01table.concat()DesafioQuiz
- 02Construção de tabelas e unpack()DesafioQuiz
- 03table.sort()DesafioQuiz
- 04Ordenação personalizada com funçõesQuiz
- 05Recapitulação - Placar de recordesDesafio
Conceitos Avançados de Funções
6 lições539- 01Retornando Múltiplos ValoresQuiz
- 02Funções Variádicas (...)DesafioQuiz
- 03Funções como Valores de Primeira ClasseDesafioQuiz
- 04Funções AnônimasDesafioQuiz
- 05O que é uma Closure?DesafioQuiz
- 06Recapitulação - Manipulador de Eventos SimplesDesafio
Introdução às Metatabelas
8 lições757- 01O que é uma Metatabela?Quiz
- 02setmetatable & getmetatableDesafioQuiz
- 03O Metamétodo __indexDesafioQuiz
- 04O Metamétodo __newindexDesafioQuiz
- 05O Metamétodo __tostringDesafioQuiz
- 06Metamétodos Aritméticos Parte 1DesafioQuiz
- 07Metamétodos Aritméticos Parte 2DesafioQuiz
- 08Recapitulação - Tabela Somente LeituraDesafio
Projeto: Engine de Aventura de Texto
Projeto8 lições1- 01Configuração do Projeto: A SalaDesafio
- 02Conectando as SalasProjeto
- 03Estado do JogadorProjeto
- 04O Game LoopProjeto
- 05Processando a Entrada do UsuárioProjeto
- 06Movendo o JogadorProjeto
- 07Tratando Movimentos InválidosProjeto
- 08Exibindo as SaídasProjeto
Tratamento de Erros
3 lições216- 01A Função error()Quiz
- 02Chamadas Protegidas com pcall()DesafioQuiz
- 03Recapitulação - Divisão SeguraDesafio
Manipulação Avançada de Strings
6 lições641- 01string.gsub() para SubstituiçãoDesafioQuiz
- 02Introdução a Padrões de StringDesafioQuiz
- 03string.find()DesafioQuiz
- 04string.match()DesafioQuiz
- 05Iteração com string.gmatch()DesafioQuiz
- 06Recapitulação - Parser de Arquivos de LogDesafio
Projeto: Lista de Contatos
Projeto7 lições1- 01Configuração do ProjetoDesafio
- 02O Loop PrincipalProjeto
- 03Adicionando um ContatoProjeto
- 04Listando Todos os ContatosProjeto
- 05Buscando um ContatoProjeto
- 06Excluindo um ContatoProjeto
- 07Tratando Entradas InválidasProjeto
Coroutines para Iniciantes
7 lições638- 01O que é uma Coroutine?Quiz
- 02coroutine create & resumeDesafioQuiz
- 03Pausando com coroutine.yield()DesafioQuiz
- 04resume & yieldDesafioQuiz
- 05Verificando o Status da CoroutineDesafioQuiz
- 06Recapitulação - Gerador de NúmerosDesafio
- 07Recapitulação - Matemática de VetoresDesafio
Seção 3
Object Oriented Programming
Começar seçãoIniciarExpandirRecolherDiscover how to organize code with classes, objects, and reusable structuresO Conceito 'Self'
5 lições532- 01Tabelas com FunçõesDesafioQuiz
- 02'self' ExplícitoDesafioQuiz
- 03A Sintaxe de Dois-pontosDesafioQuiz
- 04Ponto vs Dois-pontosDesafioQuiz
- 05Recapitulação - Movendo o PontoDesafio
Padrão de Protótipo de Classe
6 lições641- 01O Conceito de ProtótipoDesafioQuiz
- 02Vinculando com __indexDesafioQuiz
- 03O Construtor :new()DesafioQuiz
- 04Inicializando AtributosDesafioQuiz
- 05Instâncias IndependentesDesafioQuiz
- 06Recapitulação - Fábrica de CarrosDesafio
Estado e Comportamento do Objeto
7 lições748- 01Variáveis de InstânciaDesafioQuiz
- 02Métodos GetterDesafioQuiz
- 03Métodos SetterDesafioQuiz
- 04Propriedades CalculadasDesafioQuiz
- 05Formatação de StringsDesafioQuiz
- 06Verificações de IgualdadeDesafioQuiz
- 07Recapitulação - Nota do AlunoDesafio
Projeto: Banco Digital
Projeto7 lições1- 01Configuração do ProjetoDesafio
- 02Método de DepósitoProjeto
- 03Método de SaqueProjeto
- 04Obter SaldoProjeto
- 05Informações da ContaProjeto
- 06Transferir FundosProjeto
- 07Teste Final do BancoProjeto
Sobrecarga de Operadores em POO
5 lições531- 01Somando ObjetosDesafioQuiz
- 02Subtraindo ObjetosDesafioQuiz
- 03Concatenando ObjetosDesafioQuiz
- 04Comparando Objetos (<, >)DesafioQuiz
- 05Recapitulação - Matemática de CarteiraDesafio
Fundamentos de Herança
6 lições643- 01Configurando a HerançaDesafioQuiz
- 02Herdando MétodosDesafioQuiz
- 03Estendendo o ConstrutorDesafioQuiz
- 04Adicionando Métodos FilhosDesafioQuiz
- 05Compartilhado vs ÚnicoDesafioQuiz
- 06Recapitulação - Hierarquia de FormasDesafio
Polimorfismo e Sobrescrita
6 lições640- 01Sobrescrita de MétodosDesafioQuiz
- 02Chamando Métodos da Classe PaiDesafioQuiz
- 03Duck TypingDesafioQuiz
- 04Interface ComumDesafioQuiz
- 05Verificando o TipoDesafioQuiz
- 06Recapitulação - Papéis de FuncionáriosDesafio
Encapsulamento
6 lições644- 01Convenções de NomenclaturaDesafioQuiz
- 02Closures para PrivacidadeDesafioQuiz
- 03Acesso via ClosuresDesafioQuiz
- 04Tabelas Somente LeituraDesafioQuiz
- 05Lógica de ValidaçãoDesafioQuiz
- 06Recapitulação - Cofre SeguroDesafio
Composição e Mixins
6 lições642- 01Relacionamento Tem-UmDesafioQuiz
- 02DelegaçãoDesafioQuiz
- 03Mixins SimplesDesafioQuiz
- 04Aplicando Múltiplos MixinsDesafioQuiz
- 05Mixins vs HerançaDesafioQuiz
- 06Recapitulação - Montagem de RobôDesafio
Projeto: Gerenciador de Formas
Projeto7 lições1- 01Configuração do ProjetoDesafio
- 02Classe RetânguloProjeto
- 03Classe CírculoProjeto
- 04Método PerímetroProjeto
- 05Coleção de FormasProjeto
- 06Área TotalProjeto
- 07Filtrar FormasProjeto
Padrões de Projeto (Lite)
5 lições532- 01Funções FactoryDesafioQuiz
- 02Tabela SingletonDesafioQuiz
- 03Padrão IteratorDesafioQuiz
- 04Observer (Listener)DesafioQuiz
- 05Recapitulação - Logger FactoryDesafio
Desafios Finais
4 lições4- 01Revisão - Sistema de InventárioDesafio
- 02Revisão - Gerenciador de UsuáriosDesafio
- 03Revisão - Rastreador de PontuaçãoDesafio
- 04Verificação Final de POODesafio
Cursos de Lua
Cursos práticos de Lua, grátis para começar no navegador.
Desafios para Iniciantes - Pratique Conceitos Básicos
PopularColoque seus conhecimentos básicos de programação à prova e tente resolver estes desafios de programação. Use a linguagem que desejar. Bons códigos!
Certificado ao concluir
- 20
- 20
Problemas de Programação
PopularColoque suas habilidades de resolução de problemas de programação à prova com os exercícios de diferentes níveis de dificuldade deste curso. Projetado para programadores com algum conhecimento prévio da sintaxe básica em qualquer linguagem de programação.
Certificado ao concluir
- 32
- 31
Desafios de Programação: Volume 2
Coloque suas habilidades de resolução de problemas de programação à prova com os exercícios de diferentes níveis de dificuldade deste curso. Projetado para programadores com conhecimento prévio da sintaxe básica em qualquer linguagem de programação, este curso é uma extensão do primeiro Desafios de Programação.
Certificado ao concluir
- 25
- 24
Pilha - Série Estruturas de Dados #1
Neste curso, você aprenderá sobre a estrutura de dados Pilha, criará uma Pilha do zero usando sua linguagem preferida e praticará desafios de programação com ela!
- 13
- 6
- 1
Heaps e Filas de Prioridade - Série de Estruturas de Dados #7
NovoNeste curso, você aprenderá sobre a estrutura de dados Heap (a base das filas de prioridade), criará um MinHeap do zero usando sua linguagem preferida e praticará desafios de codificação com ela!
Certificado ao concluir
- 14
- 6
- 1
Bootcamp de Padrões de Estrelas
Coloque suas habilidades de resolução de problemas de programação em prática para aprender a imprimir padrões de estrelas que variam do simples ao complexo, envolvendo diferentes níveis de loops aninhados, estruturas condicionais e cálculos matemáticos.
- 30
- 28
Por que aprender Lua com a Coddy
- Rode código Lua de verdade no navegador. Sem interpretador Lua para instalar, sem configurar toolchain. Cada aula executa seu script Lua no servidor e mostra a saída na hora.
- Lua como ele é usado de verdade: variáveis, controle de fluxo, funções, tables (a única estrutura de dados de Lua), manipulação de strings, metatables e padrões de OOP, tratamento de erros. As bases de Lua que você precisa para Roblox, Love2D ou scripting embutido.
- As dicas de IA te ajudam a depurar scripts de Lua e a entender erros sem entregar a resposta, então tropeços clássicos como indexar um nil ou esquecer que arrays começam em 1 viram momentos de aprendizado.
- Certificado grátis de Lua quando você termina o curso. Um sinal confiável ao lado de jogos no Roblox, mods ou projetos de scripting embarcado que você já construiu.