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