Variable globale Tkinter
yassi42
Messages postés
5
Date d'inscription
Statut
Membre
Dernière intervention
-
yassi42 Messages postés 5 Date d'inscription Statut Membre Dernière intervention -
yassi42 Messages postés 5 Date d'inscription Statut Membre Dernière intervention -
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
- Global positioning system - Accueil - Transports & Cartes
- Landmark global - Guide
- Global express tracking avis - Forum Consommation & Internet
- Region global ✓ - Forum Jeux vidéo
- Global no.2 lcd tv brand - Forum Téléviseurs
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...