# Créé par angotr, le 23/11/2023 en Python 3.7
from turtle import *

speed(0) # dessine à la vitesse maximale

"""
############################
# Exercice 1:
############################
"""

def rectangle():
    #réinitialise la position et l'orientation de la tortue
    penup()
    goto(0, 0)
    seth(0)
    pendown()

    #dessine
    for _ in range(2):
        forward(100)
        left(90)
        forward(50)
        left(90)

def hexagone():
    #réinitialise la position et l'orientation de la tortue
    penup()
    goto(0, 0)
    seth(0)
    pendown()

    #dessine
    for _ in range(6):
        forward(60)
        left(60)

def etoile():
    #réinitialise la position et l'orientation de la tortue
    penup()
    goto(0, 0)
    seth(0)
    pendown()

    #dessine
    for _ in range(6):
        forward(60)
        backward(60)
        left(60)

"""
############################
# Exercice 2: Il trace une maison
############################
"""

def exercice2():
    goto(20, 0)
    goto(0, 20)
    goto(20, 20)
    goto(0, 0)
    goto(0, 20)
    goto(10, 30)
    goto(20, 20)
    goto(20, 0)

"""
############################
# Exercice 3:
############################
"""

def exercice3_fig1():
    #réinitialise la position et l'orientation de la tortue
    penup()
    goto(0, 0)
    seth(0)
    pendown()

    #dessine
    begin_fill()
    goto(20, -20)
    goto(50, 50)
    goto(0, 0)
    end_fill()
    begin_fill()
    goto(-20, -20)
    goto(-50, 50)
    goto(0, 0)
    end_fill()

def exercice3_fig2():
    #réinitialise la position et l'orientation de la tortue
    penup()
    goto(0, 0)
    seth(0)
    pendown()

    #triangle haut a droite
    begin_fill()
    for _ in range(3):
        forward(100)
        left(120)
    end_fill()

    #triangle haut a gauche
    left(180)
    begin_fill()
    for _ in range(3):
        forward(100)
        right(120)
    end_fill()

    #triangle bas
    left(120)
    begin_fill()
    for _ in range(3):
        forward(100)
        right(120)
    end_fill()

def exercice3_fig3():
    #réinitialise la position et l'orientation de la tortue
    penup()
    goto(0, 0)
    seth(0)
    pendown()

    #triangle haut
    begin_fill()
    for _ in range(3):
        forward(100)
        left(120)
    end_fill()

    #triangle haut a gauche
    right(60)
    begin_fill()
    for _ in range(3):
        forward(100)
        right(120)
    end_fill()

    #triangle bas
    left(60)
    forward(100)
    begin_fill()
    right(60)
    for _ in range(3):
        forward(100)
        right(120)
    end_fill()

def exercice3_fig4():
    #réinitialise la position et l'orientation de la tortue
    penup()
    goto(0, 0)
    seth(0)
    pendown()

    #dessine
    circle(-100, -360)
    begin_fill()
    circle(-50, +180)
    circle(+50, +180)
    circle(+100, -180)
    end_fill()

    penup()
    goto(0, -40)
    pendown()
    color("white")
    begin_fill()
    circle(10, -360)
    end_fill()

    penup()
    goto(0, -140)
    pendown()
    color("black")
    begin_fill()
    circle(10, -360)
    end_fill()
    hideturtle()

"""
############################
# Exercice 4:
############################
"""

def exercice4_fig1():
    #réinitialise la position et l'orientation de la tortue
    penup()
    goto(0, 0)
    seth(0)
    pendown()

    #dessine
    begin_fill()
    for _ in range(4):
        forward(100)
        left(90)
    end_fill()

    goto(50, 50)
    color("white")
    width(7)
    for _ in range(6):
        forward(30)
        backward(30)
        left(90)
    hideturtle()

def exercice4_fig2():
    #réinitialise la position et l'orientation de la tortue
    penup()
    goto(0, 0)
    seth(0)
    pendown()

    #dessine
    width(15)
    right(100)
    circle(40, -230)
    circle(-20, -60)
    backward(20)
    penup()
    backward(30)
    pendown()
    dot()

def exercice4_fig3():
    #réinitialise la position et l'orientation de la tortue
    penup()
    goto(0, 0)
    seth(0)
    pendown()

    for _ in range(3):
        #trait exterieur
        width(6)
        forward(100)
        left(150)

        #trait interieur
        width(2)
        forward(58)
        backward(58)
        right(30)

"""
############################
# Exercice 5:
############################
"""

def drapeau():
    #cadre
    goto(150,0)
    goto(150,100)
    goto(0,100)
    goto(0,0)

    #Rectangle bleu
    fillcolor("blue")
    begin_fill()
    goto(50, 0)
    goto(50, 100)
    goto(0, 100)
    goto(0,0)
    end_fill()

    # rectangle rouge
    fillcolor("red")
    begin_fill()
    goto(150, 0)
    goto(150, 100)
    goto(100, 100)
    goto(100,0)
    end_fill()

"""
############################
# Exercice 6:
############################
"""

def arc_en_ciel():
    width(10)
    left(90)
    colors = ["violet", "blue", "green", "yellow", "orange", "red"]

    for i in range(6):
        up()
        goto(0+10*i, 0)
        left(180)
        down()
        color(colors[i])
        circle(200-10*i, 180)

arc_en_ciel()
