Bonjour à tous,

Je suis dans un projet que je dois rendre pour mardi où je fais le jeu du "pierre feuille ciseaux"

Je suis encore vraiment débutant en Python cependant j'ai réussi à résoudre tous les problèmes jusqu'à maintenant.

Mais je suis maintenant confronté à deux problèmes :

Mon jeu marche très bien mais...
J'ai créé 3 variables pour faire un genre de score (comme ici) :

Nom : Sans titre-1.jpg
Affichages : 121
Taille : 233,8 Ko

Sauf que les variables se remettent à 0 après avoir bien fonctionné une fois. J'ai tout essayé mais je n'y arrive pas...

Deuxième problème, j'aimerais qu'après avoir cliqué sur le bouton "valider", l'ordinateur choisisse de lui-même un autre nombre aléatoire pour la deuxième manche.

Je vous mets mon programme :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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