[Python] problème de classe

Fermé
Nefertari - 26 mars 2010 à 17:13
dodoecchi Messages postés 454 Date d'inscription samedi 9 septembre 2006 Statut Membre Dernière intervention 26 avril 2012 - 20 avril 2010 à 16:50
Bonjour,

Voici un bout de code tout simple, mais qui ne veut pas marcher :-(

#-*- coding: utf-8 -*-
from Tkinter import *

class Fond(object):
    "s'occupe de l'arrière plan du jeu"
    def __init__(self,taille_case=30,couleur='white'):
        self = Tk()

        self.taille = taille_case               #définit la taille des cases
        self.couleur = couleur                  #définit la couleur des cases
        
    def grille(self,x,y):
        "Dessine la grille"
        taille_case=self.taille
        canvas = Canvas(self, width =x*taille_case+4, height=y*taille_case+4)
        i = 0
        while i < x:
            j = 0
            while j < y:
                canvas.create_rectangle((i*taille_case)+2,(j*taille_case)+2,
                                        ((i+1)*taille_case)+2 , ((j+1)*taille_case)+2, fill=self.couleur)
                j+=1
            i+=1

        canvas.pack()
    
if __name__=='__main__':
    root = Fond()
    root.grille(10,10)
    root.mainloop()


Quelqu'un pourrait-il m'aider ??
Sans classe tout va pourtant bien :'(

Merci...

1 réponse

dodoecchi Messages postés 454 Date d'inscription samedi 9 septembre 2006 Statut Membre Dernière intervention 26 avril 2012 29
20 avril 2010 à 16:50
ça ça marche, mais je suis pas convaincu que c'est la meilleure solution:
#-*- coding: utf-8 -*-
from Tkinter import *

class Fond(object):
    "s'occupe de l'arrière plan du jeu"
    def __init__(self,taille_case=30,couleur='white'):
        self.R = Tk()

        self.taille = taille_case               #définit la taille des cases
        self.couleur = couleur                  #définit la couleur des cases
        
    def grille(self,x,y):
        "Dessine la grille"
        taille_case=self.taille
        canvas = Canvas(self.R, width =x*taille_case+4, height=y*taille_case+4)
        i = 0
        while i < x:
            j = 0
            while j < y:
                canvas.create_rectangle((i*taille_case)+2,(j*taille_case)+2,
                                        ((i+1)*taille_case)+2 , ((j+1)*taille_case)+2, fill=self.couleur)
                j+=1
            i+=1

        canvas.pack()
    
if __name__=='__main__':
    root = Fond()
    root.grille(10,10)
    root.R.mainloop()
0