\makeatletter
\@ifundefined{complet}
{\documentclass[10pt]{report}
\title{Python}
\newcommand{\categorie}{Python~}
\input{latex_entete_perso}

\begin{document} %Cours

\setcounter{chapter}{2}
% xelatex -shell-escape cours_python
}
{}
\makeatother

\IfFileExists{menu_debug.png}{}{\write18{wget https://doc.infoforall.fr/activite/python/images/thonny/menu_debug.png}}

\IfFileExists{menu_debug_step_over.png}{}{\write18{wget https://doc.infoforall.fr/activite/python/images/thonny/menu_debug_step_over.png}}

\chapter{Séquentialité avec Turtle}


\subsection*{Voir la séquentialité en mode debug}

\begin{multicols}{2}
\small{

Pour lancer le mode DEBUG : appuyez sur le petit insecte à droite de la flèche verte.

\begin{figure}[H]
\centering
\includegraphics[width=4cm]{menu_debug.png}
\caption{debug}
\label{debug}
\end{figure}

Pour donner l'autorisation d'exécuter la ligne surlignée : appuyez sur le bouton à droite de l'insecte.

\begin{figure}[H]
\centering
\includegraphics[width=4cm]{menu_debug_step_over.png}
\caption{stepover}
\label{stepover}
\end{figure}

}
\end{multicols}

\subsection*{Module turtle}

\begin{multicols}{2}
\small{

\remarque{Création du crayon}

On importe Turtle et on crée un premier crayon.

\begin{minted}[linenos=true, bgcolor=lightgray, tabsize=4, gobble=0, fontfamily=courier, fontsize=\small, xleftmargin=20pt, xrightmargin=5pt]{python}
from turtle import Turtle
crayon = trt.Turtle()
\end{minted}


\remarque{Déplacement relatif}

Les modifications (avancer/reculer/tourner) sont faites par rapport à la position et de l'orientation de la tortue au moment où l'instruction est lancée.

L'angle initial de la tortue est 0° : elle pointe vers la droite.

\begin{minted}[linenos=true, bgcolor=lightgray, tabsize=4, gobble=0, fontfamily=courier, fontsize=\small, xleftmargin=20pt, xrightmargin=5pt]{python}
crayon.forward(50)  # Avance de 50px
crayon.backward(50) # Recule de 50px
crayon.left(45)  # tourne à gauche de 45°
crayon.right(45) # tourne à droite de 45°
\end{minted} 


\remarque{Déplacement absolu}

Cette fois, on donne des coordonnées absolues qui ne dépendent pas de la situation de la tortue au moment où elle reçoit cette instruction.

Les angles sont définis en math : 0° droite, 90° haut, 180° gauche, 270°/-90° bas.

\begin{minted}[linenos=true, bgcolor=lightgray, tabsize=4, gobble=0, fontfamily=courier, fontsize=\small, xleftmargin=20pt, xrightmargin=5pt]{python}
crayon.setheading(90)  # Regarde vers le haut
crayon.goto(50, 100)  # Va en x=50, y=100
crayon.home()  # Va en x=0, y=0
crayon.setx(50)  # Va en x=50 
crayon.sety(100) # Va en y = 100
\end{minted} 



\remarque{Gestion des couleurs}


\begin{minted}[linenos=true, bgcolor=lightgray, tabsize=4, gobble=0, fontfamily=courier, fontsize=\small, xleftmargin=20pt, xrightmargin=5pt]{python}
# Couleur du crayon
crayon.pencolor("red")

# Couleur de remplissage
crayon.fillcolor("yellow")
crayon.begin_fill()
...
crayon.end_fill()
\end{minted}


\


\remarque{Dessiner des formes}


\begin{minted}[linenos=true, bgcolor=lightgray, tabsize=4, gobble=0, fontfamily=courier, fontsize=\small, xleftmargin=20pt, xrightmargin=5pt]{python}
# Cercle de rayon x
crayon.circle(x)

# Demi-cercle rayon 60
crayon.circle(60, 180)

# Octogone de 60 de rayon
crayon.circle(60, 360, 8)

# Point rouge
crayon.dot(5, "red")
\end{minted} 




\remarque{Gestion du tracé}

Lever, baisser la pointe, modifier la vitesse (0-10) et l'épaisseur du tracé~: 

\begin{minted}[linenos=true, bgcolor=lightgray, tabsize=4, gobble=0, fontfamily=courier, fontsize=\small, xleftmargin=20pt, xrightmargin=5pt]{python}
crayon.penup()
crayon.pendown()
crayon.speed(3)
crayon.pensize(5)
\end{minted}

\gras{Ecrire un texte}~: 

\begin{minted}[linenos=true, bgcolor=lightgray, tabsize=4, gobble=0, fontfamily=courier, fontsize=\small, xleftmargin=20pt, xrightmargin=5pt]{python}
crayon.write("bonjour")
\end{minted}
}

\end{multicols}

\input{licence}

\makeatletter
\@ifundefined{complet}
{\end{document}}
{}
\makeatother
