Besoin d'aide en python fonction piocher d'un jeu de domino
pydeveloppeur
-
yg_be Messages postés 24281 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 24281 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je suis en train de créer un jeu de domino sur python à l'aide du module Tkinter pour un projet jeu de société. Cependant j'ai un soucis au niveau de ma fonction piocher. Voici une partie du code que j'ai réalisé.
Ma fonction est rattachée à un bouton tout fonctionnait avant car j'avais mis au préalable "print(un mot)" pour tester et cela fonctionnait donc au niveau des boutons tout fonctionne mais le problème vient de la fonction.
Le but étant de piocher au hasard un des domino et de l'afficher sur la fenêtre tkinter. Toute aide est la bienvenue et m'aidera pour mon projet merci !
import tkinter as TK
from tkinter import Canvas #Pour éviter d'écrire TK.Canvas
from PIL import Image
import time as tm
import random as randint
domino=['.\domino\domino-0_0.PNG','.\domino\domino-1_0.PNG','\domino\domino-2_0.PNG','\domino\domino-3_0.PNG','\domino\domino-4_0.PNG','.\domino\domino-5_0.PNG','\domino\domino-6_0.PNG','.\domino\domino-1_1.PNG','.\domino\domino-1_2.PNG','.\domino\domino-1_3.PNG','.\domino\domino-1_4.PNG','.\domino\domino-1_5.PNG','.\domino\domino-1_6.PNG','.\domino\domino-2_2.PNG','.\domino\domino-2_3.PNG','.\domino\domino-2_4.PNG','.\domino\domino-2_5.PNG','.\domino\domino-2_6.PNG','.\domino\domino-3_3.PNG','.\domino\domino-3_4.PNG','.\domino\domino-3_5.PNG','.\domino\domino-3_6.PNG','.\domino\domino-4_4.PNG','.\domino\domino-4_5.PNG','.\domino\domino-4_6.PNG','.\domino\domino-5_5.PNG','.\domino\domino-5_6.PNG']
def PIOCHER(dominoafficher):
x=random.randint(0,27)
dominoafficher=PhotoImage(file=domino[x])
#Canevas.create_image(50,50, image=domnioafficher)
canvas.create_image(50,50,image=dominoafficher)
erreur affichée :
Exception in Tkinter callback
Traceback (most recent call last):
File "c:\users\leila\anaconda3\lib\tkinter\__init__.py", line 1883, in __call__
return self.func(*args)
File "C:\Users\leila\OneDrive\Bureau\test_domino_test_13_11.py", line 45, in PIOCHER
x=random.randint(0,27)
NameError: name 'random' is not defined
Je suis en train de créer un jeu de domino sur python à l'aide du module Tkinter pour un projet jeu de société. Cependant j'ai un soucis au niveau de ma fonction piocher. Voici une partie du code que j'ai réalisé.
Ma fonction est rattachée à un bouton tout fonctionnait avant car j'avais mis au préalable "print(un mot)" pour tester et cela fonctionnait donc au niveau des boutons tout fonctionne mais le problème vient de la fonction.
Le but étant de piocher au hasard un des domino et de l'afficher sur la fenêtre tkinter. Toute aide est la bienvenue et m'aidera pour mon projet merci !
import tkinter as TK
from tkinter import Canvas #Pour éviter d'écrire TK.Canvas
from PIL import Image
import time as tm
import random as randint
domino=['.\domino\domino-0_0.PNG','.\domino\domino-1_0.PNG','\domino\domino-2_0.PNG','\domino\domino-3_0.PNG','\domino\domino-4_0.PNG','.\domino\domino-5_0.PNG','\domino\domino-6_0.PNG','.\domino\domino-1_1.PNG','.\domino\domino-1_2.PNG','.\domino\domino-1_3.PNG','.\domino\domino-1_4.PNG','.\domino\domino-1_5.PNG','.\domino\domino-1_6.PNG','.\domino\domino-2_2.PNG','.\domino\domino-2_3.PNG','.\domino\domino-2_4.PNG','.\domino\domino-2_5.PNG','.\domino\domino-2_6.PNG','.\domino\domino-3_3.PNG','.\domino\domino-3_4.PNG','.\domino\domino-3_5.PNG','.\domino\domino-3_6.PNG','.\domino\domino-4_4.PNG','.\domino\domino-4_5.PNG','.\domino\domino-4_6.PNG','.\domino\domino-5_5.PNG','.\domino\domino-5_6.PNG']
def PIOCHER(dominoafficher):
x=random.randint(0,27)
dominoafficher=PhotoImage(file=domino[x])
#Canevas.create_image(50,50, image=domnioafficher)
canvas.create_image(50,50,image=dominoafficher)
erreur affichée :
Exception in Tkinter callback
Traceback (most recent call last):
File "c:\users\leila\anaconda3\lib\tkinter\__init__.py", line 1883, in __call__
return self.func(*args)
File "C:\Users\leila\OneDrive\Bureau\test_domino_test_13_11.py", line 45, in PIOCHER
x=random.randint(0,27)
NameError: name 'random' is not defined
Configuration: Windows / Firefox 94.0
A voir également:
- Jeu domino python
- 94 jeu - Télécharger - Puzzle & Réflexion
- 94 degrés jeu - Télécharger - Divers Jeux
- Citizen code python avis - Accueil - Outils
- Jeu zuma - Télécharger - Jeux vidéo
- Jeu logo - Télécharger - Jeux vidéo
7 réponses
Bonjour
En Python, l’indentation est primordiale, or par défaut le site ne la conserve pas.
Pour la conserver il faut utiliser les balises de code. Voir ce petit tuto https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
On pourra commencer à essayer de t’aider quand tu auras reposté correctement ton code.
D’autre part poster ton code c’est très bien, mais il faut aussi décrire le problème.
En Python, l’indentation est primordiale, or par défaut le site ne la conserve pas.
Pour la conserver il faut utiliser les balises de code. Voir ce petit tuto https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
On pourra commencer à essayer de t’aider quand tu auras reposté correctement ton code.
D’autre part poster ton code c’est très bien, mais il faut aussi décrire le problème.
pydeveloppeur
Messages postés
13
Statut
Membre
import tkinter as TK
from tkinter import Canvas #Pour éviter d'écrire TK.Canvas
from PIL import Image
import time as tm
import random
domino=['.\domino\domino-0_0.PNG','.\domino\domino-1_0.PNG','\domino\domino-2_0.PNG','\domino\domino-3_0.PNG','\domino\domino-4_0.PNG','.\domino\domino-5_0.PNG','\domino\domino-6_0.PNG','.\domino\domino-1_1.PNG','.\domino\domino-1_2.PNG','.\domino\domino-1_3.PNG','.\domino\domino-1_4.PNG','.\domino\domino-1_5.PNG','.\domino\domino-1_6.PNG','.\domino\domino-2_2.PNG','.\domino\domino-2_3.PNG','.\domino\domino-2_4.PNG','.\domino\domino-2_5.PNG','.\domino\domino-2_6.PNG','.\domino\domino-3_3.PNG','.\domino\domino-3_4.PNG','.\domino\domino-3_5.PNG','.\domino\domino-3_6.PNG','.\domino\domino-4_4.PNG','.\domino\domino-4_5.PNG','.\domino\domino-4_6.PNG','.\domino\domino-5_5.PNG','.\domino\domino-5_6.PNG']
def START(*args):
print("start function")
Domino = ['.\domino\domino-0_0.PNG','.\domino\domino-1_0.PNG','\domino\domino-2_0.PNG','\domino\domino-3_0.PNG','\domino\domino-4_0.PNG','.\domino\domino-5_0.PNG','\domino\domino-6_0.PNG','.\domino\domino-1_1.PNG','.\domino\domino-1_2.PNG','.\domino\domino-1_3.PNG','.\domino\domino-1_4.PNG','.\domino\domino-1_5.PNG','.\domino\domino-1_6.PNG','.\domino\domino-2_2.PNG','.\domino\domino-2_3.PNG','.\domino\domino-2_4.PNG','.\domino\domino-2_5.PNG','.\domino\domino-2_6.PNG','.\domino\domino-3_3.PNG','.\domino\domino-3_4.PNG','.\domino\domino-3_5.PNG','.\domino\domino-3_6.PNG','.\domino\domino-4_4.PNG','.\domino\domino-4_5.PNG','.\domino\domino-4_6.PNG','.\domino\domino-5_5.PNG','.\domino\domino-5_6.PNG']
U1 = []
Rnd_1 = []
for j in range(6):
while(1):
idx = rnd.randint(1,27)
if idx not in Rnd_1:
U1.append(Pdmn(Domino[idx]))
Rnd_1.append(idx)
break
U2 = []
Rnd_2 = Rnd_1.copy()
for j in range(6):
while(1):
idx = rnd.randint(1,27)
if idx not in Rnd_2:
U2.append(Pdmn(Domino[idx]))
Rnd_2.append(idx)
break
photo=TK.PhotoImage(file=".\domino\domino-00.PNG") #ou 0_0
photo.resize((40,40), Image.ANTIALIAS)
canvas.create_image(100,300, image = photo)
return
def ABANDON(*args):
print("ABANDON")
return
def PIOCHER(dominoafficher):
x=random.randint(0, 27)
dominoafficher=Image(file=domino[x])
#Canevas.create_image(50,50, image=domnioafficher)
canvas.create_image(50,50,image=dominoafficher)
def REJOUER(*args):
print("REJOUER")
return
def QUITTER(*args):
global fen
fen.destroy()
if __name__=='__main__':
noms=[]
for joueurs in range(2):
def show():
nom = Nom_du_joueur.get()
noms.append(nom)
#print(p)
app.destroy()
app = TK.Tk()
app.title("Saisie nom des joueurs")
app.geometry('400x400')
canvas=TK.Canvas(background="#B0E0E6",height=300,width=300)
img0=TK.PhotoImage(file="C:\\Users\\leila\\OneDrive\\Bureau\\joueur_image.PNG")
canvas.create_image(150,150,image=img0)
canvas.pack()
Nom_du_joueur = TK.StringVar()
nomEntry = TK.Entry(app, textvariable=Nom_du_joueur).pack()
sumbmit = TK.Button(app, text='Saisir le nom des joueurs',command=show).pack()
app.mainloop()
print(noms)
fen = TK.Tk()
fen.title("Jeu de Domino")
canvas=Canvas(fen,width=600,height=600,background='#B0E0E6')
#1ère ligne du quadrillage
c11=Canvas.create_rectangle(canvas,100,100,140,140, fill="white")
c12=Canvas.create_rectangle(canvas,140,100,180,140, fill="white")
c13=Canvas.create_rectangle(canvas,180,100,220,140, fill="white")
c14=Canvas.create_rectangle(canvas,220,100,260,140, fill="white")
c15=Canvas.create_rectangle(canvas,260,100,300,140, fill="white")
c16=Canvas.create_rectangle(canvas,300,100,340,140, fill="white")
c17=Canvas.create_rectangle(canvas,340,100,380,140, fill="white")
c18=Canvas.create_rectangle(canvas,380,100,420,140, fill="white")
c19=Canvas.create_rectangle(canvas,420,100,460,140, fill="white")
c1A=Canvas.create_rectangle(canvas,460,100,500,140, fill="white")
#2ème ligne
c21=Canvas.create_rectangle(canvas,100,140,140,180, fill="white")
c22=Canvas.create_rectangle(canvas,140,140,180,180, fill="white")
c23=Canvas.create_rectangle(canvas,180,140,220,180, fill="white")
c24=Canvas.create_rectangle(canvas,220,140,260,180, fill="white")
c25=Canvas.create_rectangle(canvas,260,140,300,180, fill="white")
c26=Canvas.create_rectangle(canvas,300,140,340,180, fill="white")
c27=Canvas.create_rectangle(canvas,340,140,380,180, fill="white")
c28=Canvas.create_rectangle(canvas,380,140,420,180, fill="white")
c29=Canvas.create_rectangle(canvas,420,140,460,180, fill="white")
c2A=Canvas.create_rectangle(canvas,460,140,500,180, fill="white")
#3ème ligne
c31=Canvas.create_rectangle(canvas,100,180,140,220, fill="white")
c32=Canvas.create_rectangle(canvas,140,180,180,220, fill="white")
c33=Canvas.create_rectangle(canvas,180,180,220,220, fill="white")
c34=Canvas.create_rectangle(canvas,220,180,260,220, fill="white")
c35=Canvas.create_rectangle(canvas,260,180,300,220, fill="white")
c36=Canvas.create_rectangle(canvas,300,180,340,220, fill="white")
c37=Canvas.create_rectangle(canvas,340,180,380,220, fill="white")
c38=Canvas.create_rectangle(canvas,380,180,420,220, fill="white")
c39=Canvas.create_rectangle(canvas,420,180,460,220, fill="white")
c3A=Canvas.create_rectangle(canvas,460,180,500,220, fill="white")
#4ème ligne
c41=Canvas.create_rectangle(canvas,100,220,140,260, fill="white")
c42=Canvas.create_rectangle(canvas,140,220,180,260, fill="white")
c43=Canvas.create_rectangle(canvas,180,220,220,260, fill="white")
c44=Canvas.create_rectangle(canvas,220,220,260,260, fill="white")
c45=Canvas.create_rectangle(canvas,260,220,300,260, fill="white")
c46=Canvas.create_rectangle(canvas,300,220,340,260, fill="white")
c47=Canvas.create_rectangle(canvas,340,220,380,260, fill="white")
c48=Canvas.create_rectangle(canvas,380,220,420,260, fill="white")
c49=Canvas.create_rectangle(canvas,420,220,460,260, fill="white")
c4A=Canvas.create_rectangle(canvas,460,220,500,260, fill="white")
#5ème ligne
c51=Canvas.create_rectangle(canvas,100,260,140,300, fill="white")
c52=Canvas.create_rectangle(canvas,140,260,180,300, fill="white")
c53=Canvas.create_rectangle(canvas,180,260,220,300, fill="white")
c54=Canvas.create_rectangle(canvas,220,260,260,300, fill="white")
c55=Canvas.create_rectangle(canvas,260,260,300,300, fill="white")
c56=Canvas.create_rectangle(canvas,300,260,340,300, fill="white")
c57=Canvas.create_rectangle(canvas,340,260,380,300, fill="white")
c58=Canvas.create_rectangle(canvas,380,260,420,300, fill="white")
c59=Canvas.create_rectangle(canvas,420,260,460,300, fill="white")
c5A=Canvas.create_rectangle(canvas,460,260,500,300, fill="white")
#6ème ligne
c61=Canvas.create_rectangle(canvas,100,300,140,340, fill="white")
c62=Canvas.create_rectangle(canvas,140,300,180,340, fill="white")
c63=Canvas.create_rectangle(canvas,180,300,220,340, fill="white")
c64=Canvas.create_rectangle(canvas,220,300,260,340, fill="white")
c65=Canvas.create_rectangle(canvas,260,300,300,340, fill="white")
c66=Canvas.create_rectangle(canvas,300,300,340,340, fill="white")
c67=Canvas.create_rectangle(canvas,340,300,380,340, fill="white")
c68=Canvas.create_rectangle(canvas,380,300,420,340, fill="white")
c69=Canvas.create_rectangle(canvas,420,300,460,340, fill="white")
c6A=Canvas.create_rectangle(canvas,460,300,500,340, fill="white")
#7ème ligne
c71=Canvas.create_rectangle(canvas,100,340,140,380, fill="white")
c72=Canvas.create_rectangle(canvas,140,340,180,380, fill="white")
c73=Canvas.create_rectangle(canvas,180,340,220,380, fill="white")
c74=Canvas.create_rectangle(canvas,220,340,260,380, fill="white")
c75=Canvas.create_rectangle(canvas,260,340,300,380, fill="white")
c76=Canvas.create_rectangle(canvas,300,340,340,380, fill="white")
c77=Canvas.create_rectangle(canvas,340,340,380,380, fill="white")
c78=Canvas.create_rectangle(canvas,380,340,420,380, fill="white")
c79=Canvas.create_rectangle(canvas,420,340,460,380, fill="white")
c7A=Canvas.create_rectangle(canvas,460,340,500,380, fill="white")
#8ème ligne
c81=Canvas.create_rectangle(canvas,100,380,140,420, fill="white")
c82=Canvas.create_rectangle(canvas,140,380,180,420, fill="white")
c83=Canvas.create_rectangle(canvas,180,380,220,420, fill="white")
c84=Canvas.create_rectangle(canvas,220,380,260,420, fill="white")
c85=Canvas.create_rectangle(canvas,260,380,300,420, fill="white")
c86=Canvas.create_rectangle(canvas,300,380,340,420, fill="white")
c87=Canvas.create_rectangle(canvas,340,380,380,420, fill="white")
c88=Canvas.create_rectangle(canvas,380,380,420,420, fill="white")
c89=Canvas.create_rectangle(canvas,420,380,460,420, fill="white")
c8A=Canvas.create_rectangle(canvas,460,380,500,420, fill="white")
#9ème ligne
c91=Canvas.create_rectangle(canvas,100,420,140,460, fill="white")
c92=Canvas.create_rectangle(canvas,140,420,180,460, fill="white")
c93=Canvas.create_rectangle(canvas,180,420,220,460, fill="white")
c94=Canvas.create_rectangle(canvas,220,420,260,460, fill="white")
c95=Canvas.create_rectangle(canvas,260,420,300,460, fill="white")
c96=Canvas.create_rectangle(canvas,300,420,340,460, fill="white")
c97=Canvas.create_rectangle(canvas,340,420,380,460, fill="white")
c98=Canvas.create_rectangle(canvas,380,420,420,460, fill="white")
c99=Canvas.create_rectangle(canvas,420,420,460,460, fill="white")
c9A=Canvas.create_rectangle(canvas,460,420,500,460, fill="white")
#dernière ligne
cA1=Canvas.create_rectangle(canvas,100,460,140,500, fill="white")
cA2=Canvas.create_rectangle(canvas,140,460,180,500, fill="white")
cA3=Canvas.create_rectangle(canvas,180,460,220,500, fill="white")
cA4=Canvas.create_rectangle(canvas,220,460,260,500, fill="white")
cA5=Canvas.create_rectangle(canvas,260,460,300,500, fill="white")
cA6=Canvas.create_rectangle(canvas,300,460,340,500, fill="white")
cA7=Canvas.create_rectangle(canvas,340,460,380,500, fill="white")
cA8=Canvas.create_rectangle(canvas,380,460,420,500, fill="white")
cA9=Canvas.create_rectangle(canvas,420,460,460,500, fill="white")
cAA=Canvas.create_rectangle(canvas,460,460,500,500, fill="white")
Canvas.create_text(canvas, 50, 105, text="noms[0]")
Canvas.create_text(canvas, 550, 105, text="noms[1]")
d11=Canvas.create_rectangle(canvas,30,140,70,180, fill="white")
d12=Canvas.create_rectangle(canvas,30,190,70,230, fill="white")
d13=Canvas.create_rectangle(canvas,30,240,70,280, fill="white")
d14=Canvas.create_rectangle(canvas,30,290,70,330, fill="white")
d15=Canvas.create_rectangle(canvas,30,340,70,380, fill="white")
d16=Canvas.create_rectangle(canvas,30,390,70,430, fill="white")
d17=Canvas.create_rectangle(canvas,30,440,70,480, fill="white")
d21=Canvas.create_rectangle(canvas,530,140,570,180, fill="white")
d22=Canvas.create_rectangle(canvas,530,190,570,230, fill="white")
d23=Canvas.create_rectangle(canvas,530,240,570,280, fill="white")
d24=Canvas.create_rectangle(canvas,530,290,570,330, fill="white")
d25=Canvas.create_rectangle(canvas,530,340,570,380, fill="white")
d26=Canvas.create_rectangle(canvas,530,390,570,430, fill="white")
d27=Canvas.create_rectangle(canvas,530,440,570,480, fill="white")
#Ajouter le bouton start
B1=Canvas.create_rectangle(canvas,60,530,130,580, fill="#6db4bf", tags = "START-Button")
B2=Canvas.create_rectangle(canvas,160,530,230,580, fill="#6db4bf", tags = "ABANDON-Button")
B3=Canvas.create_oval(canvas,250,520,340,590, fill="#6db4bf", tags = "PIOCHER-Button")
B4=Canvas.create_rectangle(canvas,360,530,430,580, fill="#6db4bf", tags = "REJOUER-Button")
B5=Canvas.create_rectangle(canvas,460,530,530,580, fill="#6db4bf", tags = "QUITTER-Button")
font1=('Calibri',11,'bold')
#Ajouter le nom de chaque bouton
Canvas.create_text(canvas, 95, 555, text= "START",font=font1, fill="white", tags = "START-Button")
Canvas.create_text(canvas, 195, 555, text= "ABANDON",font=font1, fill="white", tags = "ABANDON-Button")
Canvas.create_text(canvas, 295, 555, text= "PIOCHER",font=font1, fill="white", tags = "PIOCHER-Button")
Canvas.create_text(canvas, 395, 555, text= "REJOUER",font=font1, fill="white", tags = "REJOUER-Button")
Canvas.create_text(canvas, 495, 555, text= "QUITTER",font=font1, fill="white", tags = "QUITTER-Button")
canvas.pack()
#Ajout des actions aux boutons
canvas.tag_bind("START-Button","<Button-1>",START)
canvas.tag_bind("ABANDON-Button","<Button-1>",ABANDON)
canvas.tag_bind("PIOCHER-Button","<Button-1>",PIOCHER)
canvas.tag_bind("REJOUER-Button","<Button-1>",REJOUER)
canvas.tag_bind("QUITTER-Button","<Button-1>",QUITTER)
#canvas.pack()
fen.mainloop()
Les messages se sont effacés mais random is not defined signifie que le module random n'est pas défini. Une personne m'a suggéré de remplacer import random as randint par import random cependant j'ai un autre problème que je n'arrive pas à résoudre maintenant : le module objet 'est pas appelé :
TypeError: 'module' object is not callable je ne comprend pas comment il faut procéder aurais-tu une idée ?
TypeError: 'module' object is not callable je ne comprend pas comment il faut procéder aurais-tu une idée ?
Ok, comme ça on peut travailler.
Ton message d’erreur se termine donc par
A ton avis qu’est ce que cela veut dire?
Ton message d’erreur se termine donc par
NameError: name 'random' is not defined
A ton avis qu’est ce que cela veut dire?
Cela signifie que le random n'est pas défini.
J'ai remplacé import random as randint par import random comme une personne me l'a conseillé mais désormais j'ai une seconde erreur : TypeError: 'module' object is not callable
Le module "objet" n'est pas appelé, je ne vois pas mon erreur aurais-tu une idée.
J'ai remplacé import random as randint par import random comme une personne me l'a conseillé mais désormais j'ai une seconde erreur : TypeError: 'module' object is not callable
Le module "objet" n'est pas appelé, je ne vois pas mon erreur aurais-tu une idée.
import tkinter as TK
from tkinter import Canvas #Pour éviter d'écrire TK.Canvas
from PIL import Image
import time as tm
import random
domino=['.\domino\domino-0_0.PNG','.\domino\domino-1_0.PNG','\domino\domino-2_0.PNG','\domino\domino-3_0.PNG','\domino\domino-4_0.PNG','.\domino\domino-5_0.PNG','\domino\domino-6_0.PNG','.\domino\domino-1_1.PNG','.\domino\domino-1_2.PNG','.\domino\domino-1_3.PNG','.\domino\domino-1_4.PNG','.\domino\domino-1_5.PNG','.\domino\domino-1_6.PNG','.\domino\domino-2_2.PNG','.\domino\domino-2_3.PNG','.\domino\domino-2_4.PNG','.\domino\domino-2_5.PNG','.\domino\domino-2_6.PNG','.\domino\domino-3_3.PNG','.\domino\domino-3_4.PNG','.\domino\domino-3_5.PNG','.\domino\domino-3_6.PNG','.\domino\domino-4_4.PNG','.\domino\domino-4_5.PNG','.\domino\domino-4_6.PNG','.\domino\domino-5_5.PNG','.\domino\domino-5_6.PNG']
def START(*args):
print("start function")
Domino = ['.\domino\domino-0_0.PNG','.\domino\domino-1_0.PNG','\domino\domino-2_0.PNG','\domino\domino-3_0.PNG','\domino\domino-4_0.PNG','.\domino\domino-5_0.PNG','\domino\domino-6_0.PNG','.\domino\domino-1_1.PNG','.\domino\domino-1_2.PNG','.\domino\domino-1_3.PNG','.\domino\domino-1_4.PNG','.\domino\domino-1_5.PNG','.\domino\domino-1_6.PNG','.\domino\domino-2_2.PNG','.\domino\domino-2_3.PNG','.\domino\domino-2_4.PNG','.\domino\domino-2_5.PNG','.\domino\domino-2_6.PNG','.\domino\domino-3_3.PNG','.\domino\domino-3_4.PNG','.\domino\domino-3_5.PNG','.\domino\domino-3_6.PNG','.\domino\domino-4_4.PNG','.\domino\domino-4_5.PNG','.\domino\domino-4_6.PNG','.\domino\domino-5_5.PNG','.\domino\domino-5_6.PNG']
U1 = []
Rnd_1 = []
for j in range(6):
while(1):
idx = rnd.randint(1,27)
if idx not in Rnd_1:
U1.append(Pdmn(Domino[idx]))
Rnd_1.append(idx)
break
U2 = []
Rnd_2 = Rnd_1.copy()
for j in range(6):
while(1):
idx = rnd.randint(1,27)
if idx not in Rnd_2:
U2.append(Pdmn(Domino[idx]))
Rnd_2.append(idx)
break
photo=TK.PhotoImage(file=".\domino\domino-00.PNG") #ou 0_0
photo.resize((40,40), Image.ANTIALIAS)
canvas.create_image(100,300, image = photo)
return
def ABANDON(*args):
print("ABANDON")
return
def PIOCHER(dominoafficher):
x=random.randint(0, 27)
dominoafficher=Image(file=domino[x])
#Canevas.create_image(50,50, image=domnioafficher)
canvas.create_image(50,50,image=dominoafficher)
def REJOUER(*args):
print("REJOUER")
return
def QUITTER(*args):
global fen
fen.destroy()
if __name__=='__main__':
noms=[]
for joueurs in range(2):
def show():
nom = Nom_du_joueur.get()
noms.append(nom)
#print(p)
app.destroy()
app = TK.Tk()
app.title("Saisie nom des joueurs")
app.geometry('400x400')
canvas=TK.Canvas(background="#B0E0E6",height=300,width=300)
img0=TK.PhotoImage(file="C:\\Users\\leila\\OneDrive\\Bureau\\joueur_image.PNG")
canvas.create_image(150,150,image=img0)
canvas.pack()
Nom_du_joueur = TK.StringVar()
nomEntry = TK.Entry(app, textvariable=Nom_du_joueur).pack()
sumbmit = TK.Button(app, text='Saisir le nom des joueurs',command=show).pack()
app.mainloop()
print(noms)
fen = TK.Tk()
fen.title("Jeu de Domino")
canvas=Canvas(fen,width=600,height=600,background='#B0E0E6')
#1ère ligne du quadrillage
c11=Canvas.create_rectangle(canvas,100,100,140,140, fill="white")
c12=Canvas.create_rectangle(canvas,140,100,180,140, fill="white")
c13=Canvas.create_rectangle(canvas,180,100,220,140, fill="white")
c14=Canvas.create_rectangle(canvas,220,100,260,140, fill="white")
c15=Canvas.create_rectangle(canvas,260,100,300,140, fill="white")
c16=Canvas.create_rectangle(canvas,300,100,340,140, fill="white")
c17=Canvas.create_rectangle(canvas,340,100,380,140, fill="white")
c18=Canvas.create_rectangle(canvas,380,100,420,140, fill="white")
c19=Canvas.create_rectangle(canvas,420,100,460,140, fill="white")
c1A=Canvas.create_rectangle(canvas,460,100,500,140, fill="white")
#2ème ligne
c21=Canvas.create_rectangle(canvas,100,140,140,180, fill="white")
c22=Canvas.create_rectangle(canvas,140,140,180,180, fill="white")
c23=Canvas.create_rectangle(canvas,180,140,220,180, fill="white")
c24=Canvas.create_rectangle(canvas,220,140,260,180, fill="white")
c25=Canvas.create_rectangle(canvas,260,140,300,180, fill="white")
c26=Canvas.create_rectangle(canvas,300,140,340,180, fill="white")
c27=Canvas.create_rectangle(canvas,340,140,380,180, fill="white")
c28=Canvas.create_rectangle(canvas,380,140,420,180, fill="white")
c29=Canvas.create_rectangle(canvas,420,140,460,180, fill="white")
c2A=Canvas.create_rectangle(canvas,460,140,500,180, fill="white")
#3ème ligne
c31=Canvas.create_rectangle(canvas,100,180,140,220, fill="white")
c32=Canvas.create_rectangle(canvas,140,180,180,220, fill="white")
c33=Canvas.create_rectangle(canvas,180,180,220,220, fill="white")
c34=Canvas.create_rectangle(canvas,220,180,260,220, fill="white")
c35=Canvas.create_rectangle(canvas,260,180,300,220, fill="white")
c36=Canvas.create_rectangle(canvas,300,180,340,220, fill="white")
c37=Canvas.create_rectangle(canvas,340,180,380,220, fill="white")
c38=Canvas.create_rectangle(canvas,380,180,420,220, fill="white")
c39=Canvas.create_rectangle(canvas,420,180,460,220, fill="white")
c3A=Canvas.create_rectangle(canvas,460,180,500,220, fill="white")
#4ème ligne
c41=Canvas.create_rectangle(canvas,100,220,140,260, fill="white")
c42=Canvas.create_rectangle(canvas,140,220,180,260, fill="white")
c43=Canvas.create_rectangle(canvas,180,220,220,260, fill="white")
c44=Canvas.create_rectangle(canvas,220,220,260,260, fill="white")
c45=Canvas.create_rectangle(canvas,260,220,300,260, fill="white")
c46=Canvas.create_rectangle(canvas,300,220,340,260, fill="white")
c47=Canvas.create_rectangle(canvas,340,220,380,260, fill="white")
c48=Canvas.create_rectangle(canvas,380,220,420,260, fill="white")
c49=Canvas.create_rectangle(canvas,420,220,460,260, fill="white")
c4A=Canvas.create_rectangle(canvas,460,220,500,260, fill="white")
#5ème ligne
c51=Canvas.create_rectangle(canvas,100,260,140,300, fill="white")
c52=Canvas.create_rectangle(canvas,140,260,180,300, fill="white")
c53=Canvas.create_rectangle(canvas,180,260,220,300, fill="white")
c54=Canvas.create_rectangle(canvas,220,260,260,300, fill="white")
c55=Canvas.create_rectangle(canvas,260,260,300,300, fill="white")
c56=Canvas.create_rectangle(canvas,300,260,340,300, fill="white")
c57=Canvas.create_rectangle(canvas,340,260,380,300, fill="white")
c58=Canvas.create_rectangle(canvas,380,260,420,300, fill="white")
c59=Canvas.create_rectangle(canvas,420,260,460,300, fill="white")
c5A=Canvas.create_rectangle(canvas,460,260,500,300, fill="white")
#6ème ligne
c61=Canvas.create_rectangle(canvas,100,300,140,340, fill="white")
c62=Canvas.create_rectangle(canvas,140,300,180,340, fill="white")
c63=Canvas.create_rectangle(canvas,180,300,220,340, fill="white")
c64=Canvas.create_rectangle(canvas,220,300,260,340, fill="white")
c65=Canvas.create_rectangle(canvas,260,300,300,340, fill="white")
c66=Canvas.create_rectangle(canvas,300,300,340,340, fill="white")
c67=Canvas.create_rectangle(canvas,340,300,380,340, fill="white")
c68=Canvas.create_rectangle(canvas,380,300,420,340, fill="white")
c69=Canvas.create_rectangle(canvas,420,300,460,340, fill="white")
c6A=Canvas.create_rectangle(canvas,460,300,500,340, fill="white")
#7ème ligne
c71=Canvas.create_rectangle(canvas,100,340,140,380, fill="white")
c72=Canvas.create_rectangle(canvas,140,340,180,380, fill="white")
c73=Canvas.create_rectangle(canvas,180,340,220,380, fill="white")
c74=Canvas.create_rectangle(canvas,220,340,260,380, fill="white")
c75=Canvas.create_rectangle(canvas,260,340,300,380, fill="white")
c76=Canvas.create_rectangle(canvas,300,340,340,380, fill="white")
c77=Canvas.create_rectangle(canvas,340,340,380,380, fill="white")
c78=Canvas.create_rectangle(canvas,380,340,420,380, fill="white")
c79=Canvas.create_rectangle(canvas,420,340,460,380, fill="white")
c7A=Canvas.create_rectangle(canvas,460,340,500,380, fill="white")
#8ème ligne
c81=Canvas.create_rectangle(canvas,100,380,140,420, fill="white")
c82=Canvas.create_rectangle(canvas,140,380,180,420, fill="white")
c83=Canvas.create_rectangle(canvas,180,380,220,420, fill="white")
c84=Canvas.create_rectangle(canvas,220,380,260,420, fill="white")
c85=Canvas.create_rectangle(canvas,260,380,300,420, fill="white")
c86=Canvas.create_rectangle(canvas,300,380,340,420, fill="white")
c87=Canvas.create_rectangle(canvas,340,380,380,420, fill="white")
c88=Canvas.create_rectangle(canvas,380,380,420,420, fill="white")
c89=Canvas.create_rectangle(canvas,420,380,460,420, fill="white")
c8A=Canvas.create_rectangle(canvas,460,380,500,420, fill="white")
#9ème ligne
c91=Canvas.create_rectangle(canvas,100,420,140,460, fill="white")
c92=Canvas.create_rectangle(canvas,140,420,180,460, fill="white")
c93=Canvas.create_rectangle(canvas,180,420,220,460, fill="white")
c94=Canvas.create_rectangle(canvas,220,420,260,460, fill="white")
c95=Canvas.create_rectangle(canvas,260,420,300,460, fill="white")
c96=Canvas.create_rectangle(canvas,300,420,340,460, fill="white")
c97=Canvas.create_rectangle(canvas,340,420,380,460, fill="white")
c98=Canvas.create_rectangle(canvas,380,420,420,460, fill="white")
c99=Canvas.create_rectangle(canvas,420,420,460,460, fill="white")
c9A=Canvas.create_rectangle(canvas,460,420,500,460, fill="white")
#dernière ligne
cA1=Canvas.create_rectangle(canvas,100,460,140,500, fill="white")
cA2=Canvas.create_rectangle(canvas,140,460,180,500, fill="white")
cA3=Canvas.create_rectangle(canvas,180,460,220,500, fill="white")
cA4=Canvas.create_rectangle(canvas,220,460,260,500, fill="white")
cA5=Canvas.create_rectangle(canvas,260,460,300,500, fill="white")
cA6=Canvas.create_rectangle(canvas,300,460,340,500, fill="white")
cA7=Canvas.create_rectangle(canvas,340,460,380,500, fill="white")
cA8=Canvas.create_rectangle(canvas,380,460,420,500, fill="white")
cA9=Canvas.create_rectangle(canvas,420,460,460,500, fill="white")
cAA=Canvas.create_rectangle(canvas,460,460,500,500, fill="white")
Canvas.create_text(canvas, 50, 105, text="noms[0]")
Canvas.create_text(canvas, 550, 105, text="noms[1]")
d11=Canvas.create_rectangle(canvas,30,140,70,180, fill="white")
d12=Canvas.create_rectangle(canvas,30,190,70,230, fill="white")
d13=Canvas.create_rectangle(canvas,30,240,70,280, fill="white")
d14=Canvas.create_rectangle(canvas,30,290,70,330, fill="white")
d15=Canvas.create_rectangle(canvas,30,340,70,380, fill="white")
d16=Canvas.create_rectangle(canvas,30,390,70,430, fill="white")
d17=Canvas.create_rectangle(canvas,30,440,70,480, fill="white")
d21=Canvas.create_rectangle(canvas,530,140,570,180, fill="white")
d22=Canvas.create_rectangle(canvas,530,190,570,230, fill="white")
d23=Canvas.create_rectangle(canvas,530,240,570,280, fill="white")
d24=Canvas.create_rectangle(canvas,530,290,570,330, fill="white")
d25=Canvas.create_rectangle(canvas,530,340,570,380, fill="white")
d26=Canvas.create_rectangle(canvas,530,390,570,430, fill="white")
d27=Canvas.create_rectangle(canvas,530,440,570,480, fill="white")
#Ajouter le bouton start
B1=Canvas.create_rectangle(canvas,60,530,130,580, fill="#6db4bf", tags = "START-Button")
B2=Canvas.create_rectangle(canvas,160,530,230,580, fill="#6db4bf", tags = "ABANDON-Button")
B3=Canvas.create_oval(canvas,250,520,340,590, fill="#6db4bf", tags = "PIOCHER-Button")
B4=Canvas.create_rectangle(canvas,360,530,430,580, fill="#6db4bf", tags = "REJOUER-Button")
B5=Canvas.create_rectangle(canvas,460,530,530,580, fill="#6db4bf", tags = "QUITTER-Button")
font1=('Calibri',11,'bold')
#Ajouter le nom de chaque bouton
Canvas.create_text(canvas, 95, 555, text= "START",font=font1, fill="white", tags = "START-Button")
Canvas.create_text(canvas, 195, 555, text= "ABANDON",font=font1, fill="white", tags = "ABANDON-Button")
Canvas.create_text(canvas, 295, 555, text= "PIOCHER",font=font1, fill="white", tags = "PIOCHER-Button")
Canvas.create_text(canvas, 395, 555, text= "REJOUER",font=font1, fill="white", tags = "REJOUER-Button")
Canvas.create_text(canvas, 495, 555, text= "QUITTER",font=font1, fill="white", tags = "QUITTER-Button")
canvas.pack()
#Ajout des actions aux boutons
canvas.tag_bind("START-Button","<Button-1>",START)
canvas.tag_bind("ABANDON-Button","<Button-1>",ABANDON)
canvas.tag_bind("PIOCHER-Button","<Button-1>",PIOCHER)
canvas.tag_bind("REJOUER-Button","<Button-1>",REJOUER)
canvas.tag_bind("QUITTER-Button","<Button-1>",QUITTER)
#canvas.pack()
fen.mainloop()
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Ha oui, je n’avais pas vu le message de yg_be, que je salue au passage.
Comprends tu pourquoi, il fallait faire cette correction ?
is not callable ne veut pas dire que le module n’est pas appelé, mais qu’on ne peut pas l’appeler.
Peux tu copier coller le message d’erreur entier?
Comprends tu pourquoi, il fallait faire cette correction ?
is not callable ne veut pas dire que le module n’est pas appelé, mais qu’on ne peut pas l’appeler.
Peux tu copier coller le message d’erreur entier?
Voici le message d'erreur :
Exception in Tkinter callback
Traceback (most recent call last):
File "c:\users\leila\anaconda3\lib\tkinter\__init__.py", line 1883, in __call__
return self.func(*args)
File "C:\Users\leila\OneDrive\Bureau\test_domino_test_13_11.py", line 46, in PIOCHER
dominoafficher=Image(file=domino[x])
TypeError: 'module' object is not callable
Exception in Tkinter callback
Traceback (most recent call last):
File "c:\users\leila\anaconda3\lib\tkinter\__init__.py", line 1883, in __call__
return self.func(*args)
File "C:\Users\leila\OneDrive\Bureau\test_domino_test_13_11.py", line 46, in PIOCHER
dominoafficher=Image(file=domino[x])
TypeError: 'module' object is not callable
Merci beaucoup ! J'ai ré affiché PhotoImage cela fonctionne mais il y a un problème au niveau du chemin pourtant j'ai écrit le bon chemin dans ma liste; tous les fichiers PNG sont classés dans un fichier domino sur mon bureau.
Voici le message d'erreur : couldn't open ".\domino\domino-4_5.PNG": no such file or directory
Voic le code de ma liste :
Voici le message d'erreur : couldn't open ".\domino\domino-4_5.PNG": no such file or directory
Voic le code de ma liste :
domino=['.\domino\domino-0_0.PNG','.\domino\domino-1_0.PNG','\domino\domino-2_0.PNG','\domino\domino-3_0.PNG','\domino\domino-4_0.PNG','.\domino\domino-5_0.PNG','\domino\domino-6_0.PNG','.\domino\domino-1_1.PNG','.\domino\domino-1_2.PNG','.\domino\domino-1_3.PNG','.\domino\domino-1_4.PNG','.\domino\domino-1_5.PNG','.\domino\domino-1_6.PNG','.\domino\domino-2_2.PNG','.\domino\domino-2_3.PNG','.\domino\domino-2_4.PNG','.\domino\domino-2_5.PNG','.\domino\domino-2_6.PNG','.\domino\domino-3_3.PNG','.\domino\domino-3_4.PNG','.\domino\domino-3_5.PNG','.\domino\domino-3_6.PNG','.\domino\domino-4_4.PNG','.\domino\domino-4_5.PNG','.\domino\domino-4_6.PNG','.\domino\domino-5_5.PNG','.\domino\domino-5_6.PNG']
@yg_bee
je t'avoue que PIL m'est étranger, Python c'est vraiment pas mon fort, je n'en fais que sur le forum....
J'ai juste cherché l'origine de son message d'erreur, en supposant que cela venait d'Image, lui-même issu de PIL.
Comme dans la doc que j'ai trouvée ça ne s'utilise pas comme pydeveloppeur l'a écrit, je lui ai donné le lien à lire.
@pydeveloppeur en prenant en considération le début de cette réponse, je ne suis pas certain de l'effet du point dans le chemin relatif (et une recherche rapide sur le net ne m'a pas apporté de réponse).
Tu devrais mettre un print pour afficher le chemin complet avec os.path.realpath et voir s'il est ok
Je pense que PIL n'est pas utilisé, le plus simple serait de supprimer l'import de PIL.
je t'avoue que PIL m'est étranger, Python c'est vraiment pas mon fort, je n'en fais que sur le forum....
J'ai juste cherché l'origine de son message d'erreur, en supposant que cela venait d'Image, lui-même issu de PIL.
Comme dans la doc que j'ai trouvée ça ne s'utilise pas comme pydeveloppeur l'a écrit, je lui ai donné le lien à lire.
@pydeveloppeur en prenant en considération le début de cette réponse, je ne suis pas certain de l'effet du point dans le chemin relatif (et une recherche rapide sur le net ne m'a pas apporté de réponse).
Tu devrais mettre un print pour afficher le chemin complet avec os.path.realpath et voir s'il est ok