# L'univers des tortues

Cet univers est une adaptation de LOGO pour la Programmer's Learning Machine.

Il est directement inspiré des travaux du mathématicien Seymour Papert dans les années 60. Inspiré par le psychologue suisse Jean Piaget, il a inventé une méthode d'apprentissage de la programmation accessible aux jeunes enfants nommée LOGO. Le monde est peuplé de tortues qui laissent une trace là où elles marchent et à qui on peut donner des ordres simples.

## Fonctions pour déplacer la tortue

    [!java|c]void [/!]avance([!java|c]double [/!]nbPas[!scala]:Double[/!])
    [!java|c]void [/!]recule([!java|c]double [/!]nbPas[!scala]:Double[/!])

Avance ou recule du nombre de pas demandé.

    [!java|c]void [/!]droite([!java|c]double [/!]angle[!scala]:Double[/!])
    [!java|c]void [/!]gauche([!java|c]double [/!]angle[!scala]:Double[/!])

Tourne à gauche ou à droite de l'angle indiqué (en degrés).

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

Renvoie la position courante de la tortue. L'origine (0; 0) est dans le coin en haut à gauche, comme c'est souvent le cas en informatique.

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

Téléporte la tortue à une nouvelle position (sans laisser de trace).

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

Déplace la tortue à une nouvelle position.

    [!java|c]void [/!]cercle([!java|c]double [/!]rayon[!scala]:Double[/!])

Dessine un cercle du rayon demandé et centré sur la tortue.

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

Cache la tortue.

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

Montre la tortue.

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

Renvoie vrai si la tortue est actuellement visible.

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

Efface toutes les traces de la feuille.

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

Retourne le cap actuel de la tortue (en degrés).

    [!java|c]void [/!]setCap([!java|c]double [/!]angle[!scala]:Double[/!])

Change le cap de la tortue à l'angle indiqué (en degrés).

## Fonctions à propos du stylo

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

Remonte le crayon de la tortue (les tortues ont des crayons, pas des brosses comme les buggles). La tortue ne laissera plus de trace lors de ses déplacements suivants.

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

Descend le stylo. La tortue laissera une trace lors de ses prochains déplacements.

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

Retourne si le stylo est actuellement baissé ou non.

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

Retourne la couleur actuelle du stylo.

    [!java|c]void [/!]setCouleur([!java|c]Color [/!]couleur[!scala]:Color[/!])

Modifier la couleur du stylo.

## Autres fonctions

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

Renvoie si la tortue actuelle est sélectionnée dans l'interface graphique.

## Couleurs valides

Nom | Couleur
[!scala|java|python]Color.[/!]black |
[!scala|java|python]Color.[/!]blue |
[!scala|java|python]Color.[/!]cyan |
[!scala|java|python]Color.[/!]darkGray |
[!scala|java|python]Color.[/!]gray |
[!scala|java|python]Color.[/!]green |
[!scala|java|python]Color.[/!]lightGray |
[!scala|java|python]Color.[/!]magenta |
[!scala|java|python]Color.[/!]orange |
[!scala|java|python]Color.[/!]pink |
[!scala|java|python]Color.[/!]red |
[!scala|java|python]Color.[/!]white |
[!scala|java|python]Color.[/!]yellow |