### progamme écrit par Mathis BRAUD ###
#différentes librairies utilisée dans ce projet
from turtle import *
from random import *

#variable utilisée dans ce projet
list1 = []

#définition des diférrents programmes de dessin de flocon
def flocon1(a):
    #initialisation du crayon de sa taille et de sa couleur
    pendown()
    pensize(a/10)
    pencolor([randint(1,3)/10,randint(3,10)/10,randint(7,10)/10])
    left(randint(20,50))
    for k in range(6):
        #dessin d'une branche répétée pour faire un flocon
        forward(a)
        back(1/3*a)
        left(60)
        forward(1/3*a)
        back(1/3*a)
        right(120)
        forward(1/3*a)
        back(1/3*a)
        left(60)
        back(2/3*a)
        right(60)
    penup()

def flocon2(a):
    pendown()
    pensize(a/20)
    pencolor([randint(1,3)/10,randint(3,8)/10,randint(7,10)/10])
    left(randint(20,50))
    for k in range(6):
        forward(a)
        back(1/3*a)
        left(60)
        forward(1/3*a)
        back(1/3*a)
        right(120)
        forward(1/3*a)
        back(1/3*a)
        left(60)
        back(1/3*a)
        left(60)
        forward(1/6*a)
        back(1/6*a)
        right(120)
        forward(1/6*a)
        back(1/6*a)
        left(60)
        back(1/6*a)
        right(60)
    penup()

def flocon3(a):
    pendown()
    pensize(a/10)
    pencolor([randint(1,3)/10,randint(3,8)/10,randint(7,10)/10])
    left(randint(20,50))
    for k in range(6):
        forward(a)
        back(1/3*a)
        left(60)
        forward(1/3*a)
        back(1/3*a)
        right(120)
        forward(1/3*a)
        back(1/3*a)
        left(60)
        back(1/3*a)
        left(60)
        forward(1/6*a)
        back(1/6*a)
        right(120)
        forward(1/6*a)
        back(1/6*a)
        left(60)
        back(1/3*a)
        right(60)
    penup()

def flocon4(a):
    pendown()
    pensize(a/10)
    pencolor([randint(1,3)/10,randint(3,8)/10,randint(7,10)/10])
    left(randint(20,50))
    for k in range(6):
        forward(a)
        back(1/3*a)
        left(60)
        forward(1/3*a)
        back(1/3*a)
        right(120)
        forward(1/3*a)
        back(1/3*a)
        left(60)
        back(1/3*a)
        left(60)
        forward(1/3*a)
        back(1/3*a)
        right(120)
        forward(1/3*a)
        back(1/3*a)
        left(60)
        back(1/3*a)
        right(60)
    penup()
    
def flocon():
    #à gauche
    goto(-150,75)
    flocon1(20)
    goto(-90,50)
    flocon2(25)
    goto(-140,30)
    flocon3(25)
    goto(-100,-10)
    flocon4(20)
    goto(-140,-35)
    flocon2(25)
    goto(-105,-70)
    flocon1(15)
    goto(-70,-50)
    flocon3(15)
    goto(-160,-75)
    flocon4(20)
    #à droite
    goto(150,75)
    flocon2(20)
    goto(90,50)
    flocon3(25)
    goto(140,30)
    flocon4(15)
    goto(165,0)
    flocon1(15)
    goto(120,-10)
    flocon2(20)
    goto(160,-60)
    flocon3(25)
    goto(110,-50)
    flocon1(15)
    #en bas
    goto(-30,-80)
    flocon2(15)
    goto(10,-75)
    flocon4(20)
    goto(60,-70)
    flocon3(20)


#écriture de la liste au Père Noël ;)
def listedenoel(x,y):
    penup()
    goto(x,y)
    #écriture de l'auteur de la liste
    write("Liste de Noël de")
    x = x+80
    goto(x,y)
    write(nom)
    x = x-60
    for item in list1:
        #écriture des objet un par un que le Père Noël va apporter
        y = y-30
        goto(x,y)
        write("-")
        x = x+10
        goto(x,y)
        write(item)
        x = x-10

def choix():
    #choix pour continuer ou finir la liste et l'afficher
    demander = str(input("Veux-tu continuer o/n ? "))
    if demander == "o":
        demande()
    else :
        listedenoel(-50,60)

def demande():
    #Ajout de l'objet dans la liste au Père Noël
    list1.append(str(input("Que veux-tu ? ")))
    choix()

print("Ho, Ho, Ho, JOYEUX NOEL")
nom = str(input("Comment t'appelles-tu ? "))
demande()
flocon()                                                                      