Avançar para o conteúdo
Imagem com logotipo, contendo link para a página inicial
  • United Stated of America flag, representing the option for the English language.
  • Bandeira do Brasil, simbolizando a opção pelo idioma Português do Brasil.

Editor Online para Código Lua

Editor e Interpretador de Código Lua para Navegador

Ferramenta online para interpretação e execução de código Lua no navegador, sem instalação de programas adicionais. O processamento do código fornecido é local, no navegador. Assim, o código escrito não enviado para um servidor remoto.

Esta página é fornecida como uma conveniência para primeiros passos em programação. Caso você planeje programar em Lua, você deve configurar um ambiente de programação para a linguagem, como descrito aqui.

O editor integrado para escrita de código-fonte utiliza CodeMirror (versão 6). CodeMirror permite escolher entre as licenças MIT e GPL3. Neste caso, minha opção é pela licença MIT. O interpretador Lua integrado utiliza Fengari, também com licença MIT.

Instruções

Para criar seu programa, escreva o código na caixa de texto fornecida. Para executar o código criado usando o interpretador Lua, aperte o botão Executar. Você também pode usar o atalho Ctrl Enter ou o atalho Shift Enter para executar o código usando o teclado.

Por conveniência, a saída de print() é apresentada em Saída do Programa. Operações de saída usando io, como io.write() e io.read(), não são implementadas por Fengari. Contudo, este interpretador fornece uma implementação simples para io.read() usando prompt() de JavaScript para leitura de dados de um teclado.

Desenhando em uma Tela (Canvas)

Esta página também provê um canvas para desenhos 2D. Para usá-lo, você pode escrever o código a seguir para obter uma referência ao contexto (context) usado para desenhar.

local js = require "js"
local window = js.global
local document = window.document

local canvas = document:getElementById("code-canvas")
local context = canvas:getContext("2d")
-- Exemplo de desenho de um retângulo azul na posição (10, 20), com 200 pixels
-- de largura e 100 pixels de altura.
context.fillStyle = "blue"
context:fillRect(10, 20, 200, 100)

Em seguida, pode-se usar context para desenhar no canvas. Os resultados serão exibidos em Canvas.

Desenhando com Gráficos Tartaruga (Turtle Graphics)

Também é possível usar o canvas para Turtle Graphics (gráficos tartaruga), usando uma implementação simples criada pelo autor.

local habilitar_animacao = true
local turtle = turtle_graphics.Turtle:new(nil, habilitar_animacao, 10, 10)

-- (0, 0) corresponde ao centro da tela (do canvas) em Turtle Graphics.
turtle:setPosition(30, 10)
-- Desenha uma letra F.
turtle:forward(50)
turtle:right(90)
turtle:forward(40)
turtle:backward(40)
turtle:left(90)
turtle:forward(40)
turtle:right(90)
turtle:forward(50)

Turtle graphics foram introduzidos pela linguagem de programação Logo.

Limitação. Caso se habilite animações, você não deve misturar desenhos no canvas usando context com turtle graphics. Caso você queira misturá-los, você deve desabilitar animações (passe false ao invés de true para habilitar_animacao). Com animações desabilitadas, você pode desenhar em qualquer ordem.

Minha implementação para a animação limpa o canvas a cada quadro para desenhar a cabeça da tartaruga (o triângulo verde).

Configurações para o Editor

O editor possui algumas configurações:

  • Indentar código usando TAB?: Caso a opção seja marcada, TAB indentará o código em um nível e Shift TAB "desindentará" de um nível (removerá um nível de indentação).

    A opção está desabilitada por padrão por uma questão de acessibilidade. TAB e Shift TAB podem ser usadas para navegar em uma página usando teclado, alterando entre campos e opções no navegador.

    Caso a opção seja habilitada, a navegação não será possível normalmente. Para fazê-la, pode-se usar, respectivamente, ESC TAB (ESC, depois TAB) e ESC Shift TAB (ESC, depois Shift TAB).

  • Avançado: habilitar modo Vim?: Opção experimental. Esta opção não é recomendada para iniciantes.

    Caso a opção seja marcada, a edição de texto usará o estilo modal de edição de texto adotado pelo editor Vim.

    A funcionalidade utiliza Codemirror-vim, com licença MIT.

Programa

Configurações

Saída do Programa

Saída em Documento HTML