Afficher un objet dans un canvas sans supprimer les autres
Résolu
Blustfire
Messages postés
5
Statut
Membre
-
Blustfire Messages postés 5 Statut Membre -
Blustfire Messages postés 5 Statut Membre -
Bonjour,
Je me suis mis à coder sur python il n'y a pas longtemps et je cherche à faire un mastermind grâce à l'interface graphique Tkinter.
J'ai cherché sur internet sans trouver la réponse à mon problème, mais ça doit être parce que la version 3.2 est sortie il n'y a pas longtemps...et je manipule sur celle-ci --'
Voilà mon problème : l'utilisateur appuie sur des boutons pour afficher la combinaison qu'il veut dans le canvas "can_combi", grâce à un compteur "N", le bouton sur lequel on appuie va mettre un rond à la position 0,1,2,3 ou 4 dans le canvas.
Donc pour illustrer, si le joueur a déjà choisi ses 3 premières couleurs, N=3 et lorsque il va cliquer sur le bouton c'est la quatrième couleur qui s'affiche dans la combinaison. Pour ça tout va bien.
Mais, (et oui, il y a un mais, sinon je serais pas là x) )... lorsque je clique pour mettre ma première couleur, il l'affiche, et quand je reclique pour afficher la deuxième boule, il me l'affiche... tout en supprimant la première et ça me fait la même chose tout le long ><
voilà la partie de mon code à cause de laquelle je pense que ça bug :
def main():
pass
from tkinter import *
from math import *
def Bleu():
"""Affiche une boule Bleu à un emplacement défini en fonction du compteur N"""
global N
can_combi = Canvas(fenetre,width =500, height =150, bg ='black')
can_combi.grid(row=1,column=1)
couleur='blue'
if N==0 :
L0 = can_combi.create_oval(25,50,75,100,fill=couleur)
if N==1 :
L1 = can_combi.create_oval(125,50,175,100,fill=couleur)
if N==2 :
L2 = can_combi.create_oval(225,50,275,100,fill=couleur)
if N==3 :
L3 = can_combi.create_oval(325,50,375,100,fill=couleur)
if N==4 :
L4 = can_combi.create_oval(425,50,475,100,fill=couleur)
N=N+1
global N
def Rose():
"""Affiche une boule Rose à un emplacement défini en fonction du compteur N"""
global N
can_combi = Canvas(fenetre,width =500, height =150, bg ='black')
can_combi.grid(row=1,column=1)
couleur='pink'
if N==0 :
L0 = can_combi.create_oval(25,50,75,100,fill=couleur)
if N==1 :
L1 = can_combi.create_oval(125,50,175,100,fill=couleur)
if N==2 :
L2 = can_combi.create_oval(225,50,275,100,fill=couleur)
if N==3 :
L3 = can_combi.create_oval(325,50,375,100,fill=couleur)
if N==4 :
L4 = can_combi.create_oval(425,50,475,100,fill=couleur)
N=N+1
global N
def Jaune():
"""Affiche une boule Jaune à un emplacement défini en fonction du compteur N"""
global N
can_combi = Canvas(fenetre,width =500, height =150, bg ='black')
can_combi.grid(row=1,column=1)
couleur='yellow'
if N==0 :
L0 = can_combi.create_oval(25,50,75,100,fill=couleur)
if N==1 :
L1 = can_combi.create_oval(125,50,175,100,fill=couleur)
if N==2 :
L2 = can_combi.create_oval(225,50,275,100,fill=couleur)
if N==3 :
L3 = can_combi.create_oval(325,50,375,100,fill=couleur)
if N==4 :
L4 = can_combi.create_oval(425,50,475,100,fill=couleur)
N=N+1
global N
def Blanc():
"""Affiche une boule blanche à un emplacement défini en fonction du compteur N"""
global N
can_combi = Canvas(fenetre,width =500, height =150, bg ='black')
can_combi.grid(row=1,column=1)
couleur='White'
if N==0 :
L0 = can_combi.create_oval(25,50,75,100,fill=couleur)
if N==1 :
L1 = can_combi.create_oval(125,50,175,100,fill=couleur)
if N==2 :
L2 = can_combi.create_oval(225,50,275,100,fill=couleur)
if N==3 :
L3 = can_combi.create_oval(325,50,375,100,fill=couleur)
if N==4 :
L4 = can_combi.create_oval(425,50,475,100,fill=couleur)
N=N+1
global N
def Violet():
"""Affiche une boule violette à un emplacement défini en fonction du compteur N"""
global N
can_combi = Canvas(fenetre,width =500, height =150, bg ='black')
can_combi.grid(row=1,column=1)
couleur='Violet'
if N==0 :
L0 = can_combi.create_oval(25,50,75,100,fill=couleur)
if N==1 :
L1 = can_combi.create_oval(125,50,175,100,fill=couleur)
if N==2 :
L2 = can_combi.create_oval(225,50,275,100,fill=couleur)
if N==3 :
L3 = can_combi.create_oval(325,50,375,100,fill=couleur)
if N==4 :
L4 = can_combi.create_oval(425,50,475,100,fill=couleur)
N=N+1
global N
#####################################################################################################################
######################################################################################################################
# Fenetre principale
fenetre = Tk()
fenetre.geometry('1000x700') #transforme les dimensions de la fenetre
fenetre.configure(bg='black')
can_proposition = Canvas(fenetre,width=500, height=470,bg='black') # canvas enregistrant toutes les propositions
can_proposition.grid(row=0,column=1)
can_combi = Canvas(fenetre,width =500, height =150, bg ='black') # le canvas qui va recevoir la combinaison du joueur
can_combi.grid(row=1,column=1)
can_bouton = Canvas(fenetre,width=500, height =470, bg ='black')
can_bouton.grid(row=0,column=3)
bouton_verif = Button(fenetre,text="Verification",command=fenetre.destroy)
bouton_verif.grid(row=2,column=3,sticky=S)
bouton_exit = Button(fenetre,text="Quitter",command=fenetre.destroy)
bouton_exit.grid(row=2,column=2,sticky=S)
Quelqu'un peut m'aider s'il vous plait ? ^^'
Je me suis mis à coder sur python il n'y a pas longtemps et je cherche à faire un mastermind grâce à l'interface graphique Tkinter.
J'ai cherché sur internet sans trouver la réponse à mon problème, mais ça doit être parce que la version 3.2 est sortie il n'y a pas longtemps...et je manipule sur celle-ci --'
Voilà mon problème : l'utilisateur appuie sur des boutons pour afficher la combinaison qu'il veut dans le canvas "can_combi", grâce à un compteur "N", le bouton sur lequel on appuie va mettre un rond à la position 0,1,2,3 ou 4 dans le canvas.
Donc pour illustrer, si le joueur a déjà choisi ses 3 premières couleurs, N=3 et lorsque il va cliquer sur le bouton c'est la quatrième couleur qui s'affiche dans la combinaison. Pour ça tout va bien.
Mais, (et oui, il y a un mais, sinon je serais pas là x) )... lorsque je clique pour mettre ma première couleur, il l'affiche, et quand je reclique pour afficher la deuxième boule, il me l'affiche... tout en supprimant la première et ça me fait la même chose tout le long ><
voilà la partie de mon code à cause de laquelle je pense que ça bug :
def main():
pass
from tkinter import *
from math import *
def Bleu():
"""Affiche une boule Bleu à un emplacement défini en fonction du compteur N"""
global N
can_combi = Canvas(fenetre,width =500, height =150, bg ='black')
can_combi.grid(row=1,column=1)
couleur='blue'
if N==0 :
L0 = can_combi.create_oval(25,50,75,100,fill=couleur)
if N==1 :
L1 = can_combi.create_oval(125,50,175,100,fill=couleur)
if N==2 :
L2 = can_combi.create_oval(225,50,275,100,fill=couleur)
if N==3 :
L3 = can_combi.create_oval(325,50,375,100,fill=couleur)
if N==4 :
L4 = can_combi.create_oval(425,50,475,100,fill=couleur)
N=N+1
global N
def Rose():
"""Affiche une boule Rose à un emplacement défini en fonction du compteur N"""
global N
can_combi = Canvas(fenetre,width =500, height =150, bg ='black')
can_combi.grid(row=1,column=1)
couleur='pink'
if N==0 :
L0 = can_combi.create_oval(25,50,75,100,fill=couleur)
if N==1 :
L1 = can_combi.create_oval(125,50,175,100,fill=couleur)
if N==2 :
L2 = can_combi.create_oval(225,50,275,100,fill=couleur)
if N==3 :
L3 = can_combi.create_oval(325,50,375,100,fill=couleur)
if N==4 :
L4 = can_combi.create_oval(425,50,475,100,fill=couleur)
N=N+1
global N
def Jaune():
"""Affiche une boule Jaune à un emplacement défini en fonction du compteur N"""
global N
can_combi = Canvas(fenetre,width =500, height =150, bg ='black')
can_combi.grid(row=1,column=1)
couleur='yellow'
if N==0 :
L0 = can_combi.create_oval(25,50,75,100,fill=couleur)
if N==1 :
L1 = can_combi.create_oval(125,50,175,100,fill=couleur)
if N==2 :
L2 = can_combi.create_oval(225,50,275,100,fill=couleur)
if N==3 :
L3 = can_combi.create_oval(325,50,375,100,fill=couleur)
if N==4 :
L4 = can_combi.create_oval(425,50,475,100,fill=couleur)
N=N+1
global N
def Blanc():
"""Affiche une boule blanche à un emplacement défini en fonction du compteur N"""
global N
can_combi = Canvas(fenetre,width =500, height =150, bg ='black')
can_combi.grid(row=1,column=1)
couleur='White'
if N==0 :
L0 = can_combi.create_oval(25,50,75,100,fill=couleur)
if N==1 :
L1 = can_combi.create_oval(125,50,175,100,fill=couleur)
if N==2 :
L2 = can_combi.create_oval(225,50,275,100,fill=couleur)
if N==3 :
L3 = can_combi.create_oval(325,50,375,100,fill=couleur)
if N==4 :
L4 = can_combi.create_oval(425,50,475,100,fill=couleur)
N=N+1
global N
def Violet():
"""Affiche une boule violette à un emplacement défini en fonction du compteur N"""
global N
can_combi = Canvas(fenetre,width =500, height =150, bg ='black')
can_combi.grid(row=1,column=1)
couleur='Violet'
if N==0 :
L0 = can_combi.create_oval(25,50,75,100,fill=couleur)
if N==1 :
L1 = can_combi.create_oval(125,50,175,100,fill=couleur)
if N==2 :
L2 = can_combi.create_oval(225,50,275,100,fill=couleur)
if N==3 :
L3 = can_combi.create_oval(325,50,375,100,fill=couleur)
if N==4 :
L4 = can_combi.create_oval(425,50,475,100,fill=couleur)
N=N+1
global N
#####################################################################################################################
######################################################################################################################
# Fenetre principale
fenetre = Tk()
fenetre.geometry('1000x700') #transforme les dimensions de la fenetre
fenetre.configure(bg='black')
can_proposition = Canvas(fenetre,width=500, height=470,bg='black') # canvas enregistrant toutes les propositions
can_proposition.grid(row=0,column=1)
can_combi = Canvas(fenetre,width =500, height =150, bg ='black') # le canvas qui va recevoir la combinaison du joueur
can_combi.grid(row=1,column=1)
can_bouton = Canvas(fenetre,width=500, height =470, bg ='black')
can_bouton.grid(row=0,column=3)
bouton_verif = Button(fenetre,text="Verification",command=fenetre.destroy)
bouton_verif.grid(row=2,column=3,sticky=S)
bouton_exit = Button(fenetre,text="Quitter",command=fenetre.destroy)
bouton_exit.grid(row=2,column=2,sticky=S)
Quelqu'un peut m'aider s'il vous plait ? ^^'
A voir également:
- Afficher un objet dans un canvas sans supprimer les autres
- Supprimer rond bleu whatsapp - Guide
- Supprimer une page dans word - Guide
- Impossible de supprimer un fichier - Guide
- Comment supprimer un compte gmail - Guide
- Windows 11 afficher d'autres options - Guide