def __init__(self, racine):
        self.racine = racine
        self.hanoi = hanoi.clHanoi(3)
        cadre_haut = Frame(racine, relief="ridge", borderwidth=2)

        gauche = Frame(cadre_haut)
        Label(gauche, text="Nb de disques : ").pack(side="top", padx=2, pady=0)
        self.nb_disques = IntVar()
        echelle = Scale(gauche, from_=3, to=10, orient="horizontal", tickinterval=1, variable=self.nb_disques)
        echelle.pack(side="top", expand="yes", fill="x", padx=2, pady=2)
        gauche.pack(side="left", expand="yes", fill="x")

        cadre_boutons = Frame(cadre_haut)
        Button(cadre_boutons, text="Commencer", command=self.Commencer).grid(row=0, column=0, sticky="nsew")
        Button(cadre_boutons, text="Solution", command=self.Solution).grid(row=1, column=0, sticky="nsew")
        Button(cadre_boutons, text="Options", command=self.Options).grid(row=0, column=1, sticky="nsew")
        Button(cadre_boutons, text="Quitter", command=self.Quitter).grid(row=1, column=1, sticky="nsew")
        cadre_boutons.pack(side="left")

        cadre_haut.pack(side="top", fill="x")

        self.dessin_tours = clDessinTours(racine, self.hanoi)
        self.dessin_tours.pack(side="top", expand="yes", fill="both")

        self.message = Label(racine, relief="ridge")
        self.message.pack(side="top", pady=2, expand="yes", fill="both")

        self.dessin_tours.Dessin()
        self.dessin_tours.bind("<ButtonPress-1>", self.ChoixTour)
        self.attente_tour_depart = 0
        self.tour_depart = -1
        self.Commencer()
 def Commencer(self):
     nb = self.nb_disques.get()
     self.hanoi = hanoi.clHanoi(nb)
     self.dessin_tours.hanoi = self.hanoi
     self.dessin_tours.Dessin()
     self.attente_tour_depart = 1
     self.mouvements = 0
     self.message.configure(text="Solution en %d mouvements minimum." % (2 ** nb - 1))
 def __init__ (self, hauteur) :
   self.hauteur = hauteur
   self.hanoi = hanoi.clHanoi(hauteur)
   self.solution_demandee = 0