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).
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.