1 2 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