| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
 100
 101
 102
 103
 104
 105
 
 |  
 
def pierrepapierciseaux(): #Fonction main
    for widget in root.winfo_children(): #Retourne la liste de tous les widgets enfants du widget appelant 
    #dans leur ordre de rangement dans la pile: du plus bas au plus haut
        widget.destroy() #On détruit le widget
    global nombre_manche
    global champ_de_saisie
    global resultat
    global manche
    global coup_ordinateur
    global duel
    global score
 
    choix_hasard = random.randint(1,3)  # Tu appelles la fonction random du module random,
    if choix_hasard == 1 :
        coup_ordinateur = "pierre"
        print("Pierre")
    elif choix_hasard == 2 :
        coup_ordinateur = "feuille"  
        print("Feuille")
    else :
        coup_ordinateur = "ciseaux"  
        print("Ciseaux")
 
    bouton_menu = Button(root, text='Menu', command=partial(main), width='8', height='1', foreground="#2113C0", background="#D1D0CC", activeforeground="#2113C0", activebackground="#848489", font=("Comic sans MS",12)) #Bouton valider
    bouton_menu.pack() #On positionne ce widget avec le gestionnaire de position pack (+ marge verticale de 20 pour espacer les différents widgets)
 
    nombre_manche = 0
 
    label = Label(root, text="Pierre papier ciseaux", font=("Comic sans MS", 20), background="#009DE0", foreground="#F8F41F") #Titre du jeu
    label.pack() #On positionne ce widget avec le gestionnaire de position pack
 
    label = Label(root, text="Jouer au mythique jeu du Pierre papier ciseaux contre un ordinateur", font=("Comic sans MS", 15), background="#009DE0") #Indication pour le champ de saisie ci-dessous
    label.pack() #On positionne ce widget avec le gestionnaire de position pack
 
    resultat = Label(root, text='', justify='center', font=("Arial", 15), background="#009DE0") #On affiche le résultat (soit "Le nombre entré est plus petit que le nombre à trouver", soit "Le nombre entré est plus grand que le nombre à trouver", soit "Vous avez gagné"
    resultat.pack() #On positionne ce widget avec le gestionnaire de position pack
 
    label = Label(root, text="Veuillez rentrer soit 'pierre', soit 'feuille' ou soit 'ciseaux' : ", font=("Comic sans MS", 15), background="#009DE0") #Indication pour le champ de saisie ci-dessous
    label.pack() #On positionne ce widget avec le gestionnaire de position pack
 
    champ_de_saisie = Entry(root, justify='center', background="#D1D0CC") #Champ de saisie du nombre
    champ_de_saisie.pack(pady='20') #On positionne ce widget avec le gestionnaire de position pack (+ marge verticale de 20 pour espacer les différents widgets)
 
    duel = Label(root, text='', justify='center', font=("Arial", 15), background="#009DE0") #On affiche le résultat (soit "Le nombre entré est plus petit que le nombre à trouver", soit "Le nombre entré est plus grand que le nombre à trouver", soit "Vous avez gagné"
    duel.pack() #On positionne ce widget avec le gestionnaire de position pack
 
    resultat = Label(root, text="", justify='center', font=("Arial", 15), background="#009DE0") #On affiche le résultat (soit "Le nombre entré est plus petit que le nombre à trouver", soit "Le nombre entré est plus grand que le nombre à trouver", soit "Vous avez gagné"
    resultat.pack() #On positionne ce widget avec le gestionnaire de position pack
 
    bouton_valider = Button(root, text='Valider', command=partial(valider_pierrepapierciseaux), justify='center', width='20', height='1', foreground="#2113C0", background="#D1D0CC", activeforeground="#2113C0", activebackground="#848489", font=("Comic sans MS",15)) #Bouton valider
    bouton_valider.pack(pady='20') #On positionne ce widget avec le gestionnaire de position pack (+ marge verticale de 20 pour espacer les différents widgets)
 
    manche = Label(root, text="", justify='center', font=("Comic sans MS", 15), background="#009DE0") #On affiche le nombre de tentatives
    manche.pack() #On positionne ce widget avec le gestionnaire de position pack
 
    score = Label(root, text="", justify='center', font=("Comic sans MS", 15), background="#009DE0") #On affiche le nombre de tentatives
    score.pack() #On positionne ce widget avec le gestionnaire de position pack
 
    root.mainloop() #Lancement de la boucle principale
 
def valider_pierrepapierciseaux(): #Fonction valider
    global nombre_manche
#global est une instruction Python qui l'informe que la variable a qui est utilisée à l'intérieur de la 
#fonction est la même que celle qui est définie à l'extérieur de la fonction
 
    nombre_manche += 1 #On incrémente de 1 à chaque fois le nombre d'essai
 
    victoire_utilisateur = 0
    victoire_ordinateur = 0
    egalite = 0
 
    if champ_de_saisie.get() == "pierre":
        duel.config(text="Pierre VS "+ coup_ordinateur) #Alors le programme affiche que le nombre est trop petit (par rapport au nombre à trouver)         
    elif champ_de_saisie.get() == "feuille":
        duel.config(text="Feuille VS "+ coup_ordinateur)
    else:
        duel.config(text="Ciseaux VS "+ coup_ordinateur)
 
    if champ_de_saisie.get() == coup_ordinateur :
        resultat.config(text="Egalité", justify='center', borderwidth ="2px", relief=SUNKEN, font=("Arial", 15), background="#BEC6C0",pady='5', padx='5')
        egalite = egalite +1
    elif champ_de_saisie.get() == "feuille" and coup_ordinateur == "pierre":
        resultat.config(text="Victoire", justify='center', borderwidth ="2px", relief=SUNKEN, font=("Arial", 15), background="#26F053",pady='5', padx='5')
        victoire_utilisateur =  victoire_utilisateur +1 
    elif champ_de_saisie.get() == "pierre" and coup_ordinateur == "ciseaux":
        resultat.config(text="Victoire", justify='center', borderwidth ="2px", relief=SUNKEN, font=("Arial", 15), background="#26F053",pady='5', padx='5')
        victoire_utilisateur =  victoire_utilisateur +1 
    elif champ_de_saisie.get() == "ciseaux" and coup_ordinateur == "feuille":
        resultat.config(text="Victoire", justify='center', borderwidth ="2px", relief=SUNKEN, font=("Arial", 15), background="#26F053",pady='5', padx='5')
        victoire_utilisateur =  victoire_utilisateur +1 
    elif champ_de_saisie.get() == "pierre" and coup_ordinateur == "feuille":
        resultat.config(text="Défaite", justify='center', borderwidth ="2px", relief=SUNKEN, font=("Arial", 15), background="#F81F67",pady='5', padx='5')
        victoire_ordinateur = victoire_ordinateur +1
    elif champ_de_saisie.get() == "ciseaux" and coup_ordinateur == "pierre":
        resultat.config(text="Défaite", justify='center', borderwidth ="2px", relief=SUNKEN, font=("Arial", 15), background="#F81F67",pady='5', padx='5')
        victoire_ordinateur = victoire_ordinateur +1
    elif champ_de_saisie.get() == "feuille" and coup_ordinateur == "ciseaux":
        resultat.config(text="Défaite", justify='center', borderwidth ="2px", relief=SUNKEN, font=("Arial", 15), background="#F81F67",pady='5', padx='5')
        victoire_ordinateur = victoire_ordinateur +1
 
    manche.config(text="Nombre de manches : " + str(nombre_manche)) #Nombre de tentatives
 
    score.config(text="Vous : "+str(victoire_utilisateur)+" / Egalité : "+str(egalite)+" / Ordinateur : "+str(victoire_ordinateur)) #Nombre de tentatives | 
Partager