# O universo das tartarugas

Esta é uma adaptação do LOGO para o Programmer's Learning Machine.

É diretamente inspirado no trabalho do matemático Seymour Papert nos anos 60. Inspirado no psicólogo suíço Jean Piaget, ele apresentou um método de ensino chamado LOGO para ensinar programação para crianças pequenas. O mundo é cheio de tartarugas que deixam um rastro de tinta por onde passam e que obedecem a comandos simples.

## Funções para mover a tartaruga

    [!java|c]void [/!]avançar([!java|c]double [/!]passos[!scala]:Double[/!])
    [!java|c]void [/!]recuar([!java|c]double [/!]passos[!scala]:Double[/!])

Move para frente e para trás na quantidade de passos pedidos.

    [!java|c]void [/!]direita([!java|c]double [/!]ângulo[!scala]:Double[/!])
    [!java|c]void [/!]esquerda([!java|c]double [/!]ângulo[!scala]:Double[/!])

Vira à esquerda ou à direita um dado ângulo (em graus).

    [!java|c]double [/!]getX()[!scala]:Double[/!]
    [!java|c]double [/!]getY()[!scala]:Double[/!]

Retorna a posição atual da tartaruga. Observe que o ponto (0,0) está no canto superior esquerdo, como é comum na ciência da computação.

    [!java|c]void [/!]setX([!java|c]double [/!]x[!scala]:Double[/!])
    [!java|c]void [/!]setY([!java|c]double [/!]y[!scala]:Double[/!])
    [!java|c]void [/!]setPos([!java|c]double [/!]x[!scala]:Double[/!], [!java|c]double [/!]y[!scala]:Double[/!])

Teletransporta a tartaruga para uma nova posição (sem deixar rastros).

    [!java|c]void [/!]moverPara([!java|c]double [/!]x[!scala]:Double[/!], [!java|c]double [/!]y[!scala]:Double[/!])

Move a tartaruga para uma nova posição.

    [!java|c]void [/!]círculo([!java|c]double [/!]raio[!scala]:Double[/!])

Desenha um círculo de raio especificado com o centro na tartaruga.

    [!java|c]void [/!]esconder()

Esconde a tartaruga.

    [!java|c]void [/!]mostrar()

Mostra novamente a tartaruga.

    [!java]boolean [/!][!c]int [/!]éVisível()[!scala]:Boolean[/!]

Retorna se a tartaruga é visível ou não.

    [!java|c]void [/!]limpar()

Remove todos os rastros do papel.

    [!java|c]double [/!]getHeading()[!scala]:Double[/!]

Retorna a direção atual da tartaruga (em graus).

    [!java|c]void [/!]setDireção([!java|c]double [/!]ângulo[!scala]:Double[/!])

Ajusta uma nova direção para a tartaruga (em graus).

## Funções da caneta

    [!java|c]void [/!]levantarCaneta()

Levanta a caneta (tartarugas têm canetas, não pinceis, como os buggles). A tartaruga não vai deixar nenhum rastro durante seus passos seguintes.

    [!java|c]void [/!]abaixarCaneta()

Abaixa a caneta. A tartaruga vai deixar um rastro nos próximos movimentos.

    [!java]boolean [/!][!c]int [/!]canetaEstáAbaixada()[!scala]:Boolean[/!]

Retorna a posição atual da caneta como um booleano.

    [!java|c]Cor [/!]getCor()[!scala]:Cor[/!]

Retorna a cor atual da caneta.

    [!java|c]void [/!]setCor([!java|c]Cor [/!]cor[!scala]:Cor[/!])

Muda a cor da caneta.

## Outras funções

    [!java]boolean [/!][!c]int [/!]estáSelecionado()[!scala]:Boolean[/!]

Retorna se a tartaruga atual está selecionada na interface gráfica.

## Cores válidas

Nome | Cor
[!scala|java|python]Cor.[/!]black |
[!scala|java|python]Cor.[/!]azul |
[!scala|java|python]Cor.[/!]ciano |
[!scala|java|python]Cor.[/!]cinzaEscuro |
[!scala|java|python]Cor.[/!]cinza |
[!scala|java|python]Cor.[/!]verde |
[!scala|java|python]Cor.[/!]cinzaClaro |
[!scala|java|python]Cor.[/!]magenta |
[!scala|java|python]Cor.[/!]laranja |
[!scala|java|python]Cor.[/!]rosa |
[!scala|java|python]Cor.[/!]vermelho |
[!scala|java|python]Cor.[/!]branco |
[!scala|java|python]Cor.[/!]amarelo |