## Instruções

Parabéns! Acaba de escrever o seu primeiro programa! Agora captou a ideia: programar é nada mais que dar instruções simples ao computador, que as realiza cegamente. A maior dificuldade é explicar tudo para algo tão idiota quanto um computador...

O nosso segundo programa vai ser um pouco mais complicado, mas não muito. O objetivo do seu buggle é simplesmente desenhar uma casa (uma caixa) e esconder-se dentro dela. Confira o mundo objetivo para ver exatamente o que isso significa.

Para isso, vai precisar de `forward()`, `left()` e `right()`. Use o seu pincel para marcar o chão enquanto anda. Comece a marcar o chão com `brushDown()` e pare com `brushUp()` depois (por exemplo, para entrar na sua casa sem marcar o chão).

### O que exatamente é um programa?

Os programas são principalmente conjuntos de chamadas de métodos, que não são mais que uma lista de ordens simples dadas à máquina. É como uma receita que diz Derreter os pedaços de chocolate, adicionar açúcar, esfriar a mistura e servir. [!thelang] quer ter as instruções separadas por ponto-e-virgula (;)[!python|scala] ou por novas linhas[/!], seguidas de parênteses. A nossa pequena receita seria assim escrita da seguinte forma[!python|scala] (também pode adicionar ponto-e-virgula no final das linhas, mas isso não é obrigatório)[/!].

    meltTheChocolatePieces()[!java|c];[/!]
    addSugar()[!java|c];[/!]
    coolMix()[!java|c];[/!]
    serve()[!java|c];[/!]

Não escreva tudo numa só linha, mesmo que o computador o aceite [!python|scala](desde que não omita ponto-e-virgulas)[/!]. Esta é uma péssima idéia, que dificulta a legibilidade. Programas devem ser escritos para pessoas as lerem e apenas incidentalmente para as máquinas executarem, como disse Harold Abelson.

Há um conjunto limitado de instruções que os buggles entendem e eventualmente aprenderemos a definir novas instruções. Por enquanto, existe um método para cada botão do painel de controle interativo. Para alcançar o mesmo efeito que o botão forward (a fazer o buggle mover um passo à frente), precisa escrever o seguinte no editor:

    [!java|scala|python]forward()[!java];[/!][/!][!c]stepForward();[/!]

Da mesma forma, para obter o mesmo efeito que os botões [!java|scala|python]recuar[/!][!c]recuarUmPasso[/!], esquerda e direita, precisa respetivamente:

    backward()[!java|c];[/!]
    left()[!java|c];[/!]
    right()[!java|c];[/!]

O botão marcar é diferente, pois corresponde a dois métodos: o primeiro move a caneta para cima e o segundo move a caneta para baixo.

    brushUp()[!java|c];[/!]
    brushDown()[!java|c];[/!]

O buggle tem outros métodos, que estão no menu "Ajuda/sobre este mundo" e serão introduzidos quando forem necessários.