コード例 #1
0
ファイル: game_screen.py プロジェクト: matteodcr/HanoiTowers
    def __init__(self, parent, controller, n, name):
        super().__init__(parent)

        # On expose le controlleur au reste de la classe pour pouvoir naviguer
        self.controller = controller

        self.first_tower = None
        self.last_tower = None

        # Utilisé à la fin du jeu pour les scores
        self.name = name
        self.start_time = None

        self.columnconfigure(0)
        self.rowconfigure(0, weight=1)
        self.rowconfigure(1, weight=1, minsize=40)

        # Placement de la Frame de turtle et de celle qui contient les boutons
        frame1 = tk.Frame(self)
        frame2 = tk.Frame(self)
        frame1.grid(row=0, column=0)
        frame2.grid(row=1, column=0)

        canvas = tk.Canvas(frame1, width=600, height=300)
        turtle = RawTurtle(canvas, visible=False)
        turtle.up()
        turtle._tracer(0)  # Désactiver l'animation de déplacement
        set_turtle(turtle)  # Définir l'instance de turtle dans turtle_utils
        canvas.grid()

        # On initialise le jeu
        game = Jeu(n)
        dessine_plateau(game.n)
        game.dessine_config()
        self.game = game

        # Placement de la Frame qui contient les boutons
        buttons_frame = tk.Frame(frame2, bg='red')
        buttons_frame.grid(sticky='nesw')

        # Placement des boutons pour les tours
        tk.Button(buttons_frame,
                  text="     1     ",
                  command=lambda: self.button_press(0)).grid(row=0,
                                                             column=0,
                                                             sticky='nesw')
        tk.Button(buttons_frame,
                  text="     2     ",
                  command=lambda: self.button_press(1)).grid(row=0,
                                                             column=1,
                                                             sticky='nesw')
        tk.Button(buttons_frame,
                  text="     3     ",
                  command=lambda: self.button_press(2)).grid(row=0,
                                                             column=2,
                                                             sticky='nesw')
        tk.Button(buttons_frame,
                  text='Ecran principal',
                  command=lambda: self.navigate_to_main(),
                  bg='red').grid(row=1, column=0, sticky='nesw')
        action_button = tk.Button(buttons_frame,
                                  text='Résoudre',
                                  command=lambda: self.action_button_press())
        action_button.grid(row=1, column=1, columnspan=2, sticky='nesw')
        self.action_button = action_button