Gestionnaire d'evenement planté?
Fermé
Toumai
-
29 août 2007 à 19:46
Toumai Messages postés 1 Date d'inscription mercredi 29 août 2007 Statut Membre Dernière intervention 29 août 2007 - 29 août 2007 à 22:11
Toumai Messages postés 1 Date d'inscription mercredi 29 août 2007 Statut Membre Dernière intervention 29 août 2007 - 29 août 2007 à 22:11
A voir également:
- Gestionnaire d'evenement planté?
- Gestionnaire de tache linux - Forum Linux / Unix
- Gestionnaire de photos - Guide
- Gestionnaire de périphérique - Guide
- Gestionnaire des taches - Guide
- Gestionnaire audio hd realtek - Télécharger - Pilotes & Matériel
3 réponses
arth
Messages postés
9373
Date d'inscription
mardi 27 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2016
1 366
29 août 2007 à 19:53
29 août 2007 à 19:53
Bonsoir,
il faudrait je pense poster ton code ici pour que les spécialistes python puissent t'aider ;)
Sinon on ne va pas pouvoir t'aider ou t'orienter pour résoudre ton souci.
Loup.
il faudrait je pense poster ton code ici pour que les spécialistes python puissent t'aider ;)
Sinon on ne va pas pouvoir t'aider ou t'orienter pour résoudre ton souci.
Loup.
oui désolé voila le code
je cherché a fer un petit jeu de labirinthe (je n'en suis qu'au début mais déja sa bloque)
je met en gras la partie du code que j'ai édité entre le moment ou sa a marché et celui ou sa a plus voulu
auparavent jouvrait simplement le mem fichier sans donner le choix
# -*- coding: cp1252 -*-
from Tkinter import*
from os import chdir
import tkFileDialog
chdir("C:/Documents and Settings/Session 1/Bureau")
global x,y,X,Y,largeur_case, hauteur_case
x,y,X,Y=0,0,0,0
#taille des cases
largeur_case, hauteur_case=50, 50
#fenetre principale du jeu
Root=Tk()
#map
map=[]
temp=[]
try :
#chargement du fichier de map
file = tkFileDialog.askopenfile(parent=Root,filetypes=[('carte Labyrint','*.map')], mode='rb',title='Choisissez une map')
if file != None:
fichier=file.readlines()
file.close()
#extraction de la map du fichier
for lignes in fichier:
if lignes[-1:]=="\n":
lignes=lignes[:-1]
if lignes[-1:]=="\r":
lignes=lignes[:-1]
temp=[]
for car in lignes:
temp.append(car)
map.append(temp)
except :
Label(Root, text="Fichier inexistant", fg="red").pack()
else :
#verification de l'égalité de la longueur de toutes les lignes
error=0
long_ligne=len(map[0])
for ligne in map:
if len(ligne)!=long_ligne:
error=1
type_error=map.index(ligne)
break
#verification de la presence d'une entrée et d'une sortie
entree=0
sortie=0
coord_entree=[]
for ligne in map:
for colonne in ligne:
if colonne=='2':
entree+=1
if entree==1:
coord_entree.append(ligne.index(colonne))
coord_entree.append(map.index(ligne))
if colonne=='3':
sortie+=1
#verification de la validité de la map
if error!=0:
Label(Root, text="Impossible de charger la map : non conformité de la longueur des lignes a la ligne :" + str(type_error), fg="red").pack()
elif entree==0:
Label(Root,text="Impossible de charger la map : elle ne contient pas d'entree", fg="red").pack()
elif sortie==0:
Label(Root,text="Impossible de charger la map : elle ne contient pas de sortie(s) ", fg="red").pack()
else:
#dessin de la map
can=Canvas(Root, width=largeur_case*(len(map[0])), height=hauteur_case*len(map), bg="white")
can.pack()
for ligne in map:
x=0
for colonne in ligne:
if colonne=='0':
couleur="white"
elif colonne=='1':
couleur="black"
elif colonne=='2':
couleur="green"
elif colonne=='3':
couleur="red"
else:
couleur="yellow"
can.create_rectangle(largeur_case*x,hauteur_case*y,largeur_case*(x+1),hauteur_case*(y+1), width=0,fill=couleur)
x+=1
y+=1
#dessin du personnage en position initiale
X=coord_entree[0]
Y=coord_entree[1]
perso=can.create_oval(coord_entree[0]*largeur_case+1,coord_entree[1]*hauteur_case+1,(coord_entree[0]+1)*largeur_case-1,(coord_entree[1]+1)*hauteur_case-1,fill="blue")
def Trace(abs, ord):
#trace le personnage
can.coords(perso,largeur_case*abs+1,hauteur_case*ord+1, largeur_case*(abs+1)-1, hauteur_case*(ord+1)-1)
#fonctions pour faire bouger le personnage
def Droite(event):
global X,Y
try :
test=map[Y][X+1]
#print test
except:
#print "error except"
pass
else :
print "else"
if (test=='0') or (test=='2'):
X=X+1
Trace(X,Y)
elif (test=='3'):
Gagne()
else :
pass
def Gauche(event):
global X,Y
try :
test=map[Y][X-1]
#print test
except:
#print "error except"
pass
else :
if X-1>=0:
if (test=='0') or (test=='2'):
X=X-1
Trace(X,Y)
elif test=='3':
Gagne()
else :
pass
def Bas(event):
global X,Y
try :
test=map[Y+1][X]
#print test
except:
pass
else :
if (test=='0') or (test=='2'):
Y=Y+1
Trace(X,Y)
elif test=='3':
Gagne()
else :
pass
def Haut(event):
global X,Y
try :
test=map[Y-1][X]
#print test
except:
pass
else :
if Y-1>=0:
if (test=='0') or (test=='2'):
Y=Y-1
Trace(X,Y)
elif test=='3':
Gagne()
else :
pass
#fonctions diverses
def Quitter():
Root.destroy()
def quitter(event):
Root.destroy()
def Gagne():
Root.bind("<Right>", quitter)
Root.bind("<Left>", quitter)
Root.bind("<Up>", quitter)
Root.bind("<Down>", quitter)
#affichage du message de victoire
can.destroy()
Label(Root, text="Gagné", fg="red").pack()
Button(Root,text="Try again?", command=TryAgain).pack()
def TryAgain():
Quitter()
#definition des commandes pour jouer
Button(Root, text="Quitter", command=Quitter).pack()
Root.bind("<Right>", Droite)
Root.bind("<Left>", Gauche)
Root.bind("<Up>", Haut)
Root.bind("<Down>", Bas)
je cherché a fer un petit jeu de labirinthe (je n'en suis qu'au début mais déja sa bloque)
je met en gras la partie du code que j'ai édité entre le moment ou sa a marché et celui ou sa a plus voulu
auparavent jouvrait simplement le mem fichier sans donner le choix
# -*- coding: cp1252 -*-
from Tkinter import*
from os import chdir
import tkFileDialog
chdir("C:/Documents and Settings/Session 1/Bureau")
global x,y,X,Y,largeur_case, hauteur_case
x,y,X,Y=0,0,0,0
#taille des cases
largeur_case, hauteur_case=50, 50
#fenetre principale du jeu
Root=Tk()
#map
map=[]
temp=[]
try :
#chargement du fichier de map
file = tkFileDialog.askopenfile(parent=Root,filetypes=[('carte Labyrint','*.map')], mode='rb',title='Choisissez une map')
if file != None:
fichier=file.readlines()
file.close()
#extraction de la map du fichier
for lignes in fichier:
if lignes[-1:]=="\n":
lignes=lignes[:-1]
if lignes[-1:]=="\r":
lignes=lignes[:-1]
temp=[]
for car in lignes:
temp.append(car)
map.append(temp)
except :
Label(Root, text="Fichier inexistant", fg="red").pack()
else :
#verification de l'égalité de la longueur de toutes les lignes
error=0
long_ligne=len(map[0])
for ligne in map:
if len(ligne)!=long_ligne:
error=1
type_error=map.index(ligne)
break
#verification de la presence d'une entrée et d'une sortie
entree=0
sortie=0
coord_entree=[]
for ligne in map:
for colonne in ligne:
if colonne=='2':
entree+=1
if entree==1:
coord_entree.append(ligne.index(colonne))
coord_entree.append(map.index(ligne))
if colonne=='3':
sortie+=1
#verification de la validité de la map
if error!=0:
Label(Root, text="Impossible de charger la map : non conformité de la longueur des lignes a la ligne :" + str(type_error), fg="red").pack()
elif entree==0:
Label(Root,text="Impossible de charger la map : elle ne contient pas d'entree", fg="red").pack()
elif sortie==0:
Label(Root,text="Impossible de charger la map : elle ne contient pas de sortie(s) ", fg="red").pack()
else:
#dessin de la map
can=Canvas(Root, width=largeur_case*(len(map[0])), height=hauteur_case*len(map), bg="white")
can.pack()
for ligne in map:
x=0
for colonne in ligne:
if colonne=='0':
couleur="white"
elif colonne=='1':
couleur="black"
elif colonne=='2':
couleur="green"
elif colonne=='3':
couleur="red"
else:
couleur="yellow"
can.create_rectangle(largeur_case*x,hauteur_case*y,largeur_case*(x+1),hauteur_case*(y+1), width=0,fill=couleur)
x+=1
y+=1
#dessin du personnage en position initiale
X=coord_entree[0]
Y=coord_entree[1]
perso=can.create_oval(coord_entree[0]*largeur_case+1,coord_entree[1]*hauteur_case+1,(coord_entree[0]+1)*largeur_case-1,(coord_entree[1]+1)*hauteur_case-1,fill="blue")
def Trace(abs, ord):
#trace le personnage
can.coords(perso,largeur_case*abs+1,hauteur_case*ord+1, largeur_case*(abs+1)-1, hauteur_case*(ord+1)-1)
#fonctions pour faire bouger le personnage
def Droite(event):
global X,Y
try :
test=map[Y][X+1]
#print test
except:
#print "error except"
pass
else :
print "else"
if (test=='0') or (test=='2'):
X=X+1
Trace(X,Y)
elif (test=='3'):
Gagne()
else :
pass
def Gauche(event):
global X,Y
try :
test=map[Y][X-1]
#print test
except:
#print "error except"
pass
else :
if X-1>=0:
if (test=='0') or (test=='2'):
X=X-1
Trace(X,Y)
elif test=='3':
Gagne()
else :
pass
def Bas(event):
global X,Y
try :
test=map[Y+1][X]
#print test
except:
pass
else :
if (test=='0') or (test=='2'):
Y=Y+1
Trace(X,Y)
elif test=='3':
Gagne()
else :
pass
def Haut(event):
global X,Y
try :
test=map[Y-1][X]
#print test
except:
pass
else :
if Y-1>=0:
if (test=='0') or (test=='2'):
Y=Y-1
Trace(X,Y)
elif test=='3':
Gagne()
else :
pass
#fonctions diverses
def Quitter():
Root.destroy()
def quitter(event):
Root.destroy()
def Gagne():
Root.bind("<Right>", quitter)
Root.bind("<Left>", quitter)
Root.bind("<Up>", quitter)
Root.bind("<Down>", quitter)
#affichage du message de victoire
can.destroy()
Label(Root, text="Gagné", fg="red").pack()
Button(Root,text="Try again?", command=TryAgain).pack()
def TryAgain():
Quitter()
#definition des commandes pour jouer
Button(Root, text="Quitter", command=Quitter).pack()
Root.bind("<Right>", Droite)
Root.bind("<Left>", Gauche)
Root.bind("<Up>", Haut)
Root.bind("<Down>", Bas)
Toumai
Messages postés
1
Date d'inscription
mercredi 29 août 2007
Statut
Membre
Dernière intervention
29 août 2007
29 août 2007 à 22:11
29 août 2007 à 22:11
je narrive pas a editer mon message car je me suis apercu trop tard de mon erreur en copiant j'ai oublié la derniere ligne:
Root.mainloop()
de plus l'indentation n'a pas été gardée mais bon..
Root.mainloop()
de plus l'indentation n'a pas été gardée mais bon..