Variable globale Tkinter
yassi42
Messages postés
5
Statut
Membre
-
yassi42 Messages postés 5 Statut Membre -
yassi42 Messages postés 5 Statut Membre -
Bonsoir,
J'essaie de créer un programme pour jouer au jeu de "papier caillou ciseaux" avec une interface graphique (tkinter) mais je suis face a un problème qu je n'arrive pas a résoudre depuis un bon moment:
Je souhaiterai faire afficher le cumul des points (sur PLUSIEURS JEUX) du joueur et du PC dans la fenêtre tkinter mais impossible j'ai essayé avec des variables globales mais ça ne marche pas. j'espère que quelqu'un voit ou es que je me trompe :-)
Merci
J'essaie de créer un programme pour jouer au jeu de "papier caillou ciseaux" avec une interface graphique (tkinter) mais je suis face a un problème qu je n'arrive pas a résoudre depuis un bon moment:
Je souhaiterai faire afficher le cumul des points (sur PLUSIEURS JEUX) du joueur et du PC dans la fenêtre tkinter mais impossible j'ai essayé avec des variables globales mais ça ne marche pas. j'espère que quelqu'un voit ou es que je me trompe :-)
Merci
import random
from tkinter import*
def jeu(joueur1):
global pointjoueur
global pointPC
pointPC=0
pointjoueur=0
PC=random.randint(1,3)
PC=int(PC)
if (joueur1==1) :
if (PC==1) :
print("égalité")
elif (PC==2) :
print("Vous gagnez")
pointjoueur=pointjoueur+1
else:
print("Vous perdez")
pointPC=pointPC+1
elif (joueur1==2) :
if PC==2 :
print("égalité")
elif PC==3 :
print("Vous gagnez")
pointjoueur=pointjoueur+1
else:
print("Vous perdez")
pointPC=pointPC+1
else:
if PC==3 :
print("égalité")
elif PC==2 :
print("Vous gagnez")
pointjoueur=pointjoueur+1
else:
print("Vous perdez")
pointPC=pointPC+1
print('Vos points:',pointjoueur)
print('points du PC:',pointPC)
print()
fen1= Tk()
fen1.title('Papier Caillou Ciseaux')
tex1=Label(fen1, text='Choisissez votre action !')
tex1.pack()
bout1=Button(fen1, text='papier', command=(lambda:jeu(1)))
bout1.pack()
bout2=Button(fen1, text='cailloux', command=(lambda:jeu(2)))
bout2.pack()
bout3=Button(fen1, text='ciseau', command=(lambda:jeu(3)))
bout3.pack()
bout4 = Button(fen1, text="Quitter", command =fen1.destroy)
bout4.pack()
chaine = Label(fen1)
chaine.pack()
tex2 = Label(fen1, text=pointjoueur)
tex2.pack()
tex4 = Label(fen1, text=pointPC)
tex4.pack()
fen1.config(background=('#336633'))
fen1.geometry('200x200')
fen1.mainloop()
A voir également:
- Tkinter global variable
- Global positioning system - Accueil - Transports & Cartes
- Impossible de créer le fichier de travail. vérifiez la variable d'environnement temp - Forum Microsoft Office
- Vba excel sélectionner une plage de cellules variable ✓ - Forum VB / VBA
- Vba range avec variable ✓ - Forum VB / VBA
- Le fichier contient un programme écrit en python. le programme construit un mot secret mais il ne l'affiche pas. modifiez ce programme afin que à chaque itération de la boucle : la variable a augmente de 2 la variable b diminue de 1 ajoutez une instruction pour faire afficher le mot secret construit. quel est ce mot secret ? ✓ - Forum Python
2 réponses
Bonjour!
Pour qu'une variable soit globale à tout le programme, il faut la déclarer dans le corps du programme et non dans une fonction.
Ça ferait quelque chose comme ça (en supposant que pointPC soit ta variable) :
Voilà! Mais n'oublie pas que les variables globales ne sont pas toujours le meilleur moyen de résoudre ce genre de problème. Les classes peuvent palier ce genre de problème! =)
ps: par contre, j'ai pas pu tester, car j'ai pas tkinter sous la main...
Edit: j'ai testé sans tkinter, et ça semble fonctionner...
Pour qu'une variable soit globale à tout le programme, il faut la déclarer dans le corps du programme et non dans une fonction.
Ça ferait quelque chose comme ça (en supposant que pointPC soit ta variable) :
pointPC=0
def jeu(joueur1):
global pointPC
# et ici, tu n'initialises pas ta variable pointPC à 0
Voilà! Mais n'oublie pas que les variables globales ne sont pas toujours le meilleur moyen de résoudre ce genre de problème. Les classes peuvent palier ce genre de problème! =)
ps: par contre, j'ai pas pu tester, car j'ai pas tkinter sous la main...
Edit: j'ai testé sans tkinter, et ça semble fonctionner...