# 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, 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 [/!]hide()

Esconde a tartaruga.

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

Mostra novamente a tartaruga.

    [!java]boolean [/!][!c]int [/!]isVisible()[!scala]:Boolean[/!]

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

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

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 [/!]penUp()

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

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

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

    [!java]boolean [/!][!c]int [/!]isPenDown()[!scala]:Boolean[/!]

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

    [!java|c]Color [/!]getColor()[!scala]:Color[/!]

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 [/!]isSelected()[!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.[/!]cinzentoEscuro |
[!scala|java|python]Cor.[/!]cinzento |
[!scala|java|python]Cor.[/!]verde |
[!scala|java|python]Cor.[/!]cinzentoClaro |
[!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 |