import turtle  # Import du module turtle pour dessiner avec une "tortue" graphique

# On essaye de réinitialiser la fenêtre turtle si elle est déjà ouverte
try:
    turtle.reset()  # Remet l'environnement turtle à l'état initial
except turtle.Terminator:  # Si la fenêtre a été fermée, on ignore l'erreur
    pass

turtle.clearscreen()  # Efface l'écran pour un dessin propre

Cloe = turtle.Turtle()  # Création d'une nouvelle tortue appelée Cloe
Cloe.shape("turtle")    # On change l'apparence de la tortue en forme de tortue
Cloe.speed(0)           # Vitesse de dessin maximale (rapide)

# Fonction récursive pour dessiner la courbe de Koch
def vonKoch(l, n):
    """
    l : longueur du segment
    n : profondeur de récursion
    """
    if n == 0:
        Cloe.forward(l)  # Si profondeur 0, on dessine juste un segment droit
    else:
        # On divise le segment en 4 parties selon la courbe de Koch

# Positionnement initial de la tortue pour centrer le dessin
Cloe.penup()        # On lève le stylo pour ne pas dessiner en se déplaçant
Cloe.backward(300)  # On recule pour centrer le dessin horizontalement
Cloe.pendown()      # On repose le stylo pour commencer à dessiner

# Appel de la fonction pour dessiner la courbe de Koch
vonKoch(600, 2)  # 600 pixels de long, profondeur de récursion 2

turtle.exitonclick()  # La fenêtre reste ouverte jusqu'au clic de la souris
