Skip to content
Snippets Groups Projects
Select Git revision
  • efff4010e4b79f5acf93db487a62a0eb25d7c220
  • master default
  • autorisation_visit
  • signup_mydata
  • format_editData
  • dev
  • authorize-valid-profile
  • feli90-patch-2
  • feli90-patch-1
  • context_sheet
  • testNewForm
  • FeliLocalTest1
  • ios-account-fix
  • change-form-link
  • dev_pages_projet
  • remise_sorties
  • release/first-users
17 results

Dockerfile

Blame
  • 2048_graphical.py 3.30 KiB
    from tkinter import *
    from game2048.grid_2048 import *
    
    # DICTIONNAIRE
    TILES_BG_COLOR = {0: "#9e948a", 2: "#eee4da", 4: "#ede0c8", 8: "#f1b078", \
                      16: "#eb8c52", 32: "#f67c5f", 64: "#f65e3b", \
                      128: "#edcf72", 256: "#edcc61", 512: "#edc850", \
                      1024: "#edc53f", 2048: "#edc22e", 4096: "#5eda92", \
                      8192: "#24ba63"}
    
    TILES_FG_COLOR = {0: "#776e65", 2: "#776e65", 4: "#776e65", 8: "#f9f6f2", \
                      16: "#f9f6f2", 32: "#f9f6f2", 64: "#f9f6f2", 128: "#f9f6f2", \
                      256: "#f9f6f2", 512: "#f9f6f2", 1024: "#f9f6f2", \
                      2048: "#f9f6f2", 4096: "#f9f6f2", 8192: "#f9f6f2"}
    
    TILES_FONT = {"Verdana", 40, "bold"}
    #FIN DICTIONNAIRE
    
    #FONCTIONS
    
    def graphical_inti():
        game_2048=Tk()
        fenetre=Toplevel()
        fenetre.title("2048")
        game_2048.title("2048")
        game_2048["bg"]="pink"
        return(game_2048)
    #attention il faut toujours faire game_2048.mainloop() à la fin du programme
    
    
    
    
    
    def create_empty_grid():
        list_tuile=[]
        for ligne in range (4):
            list_tuile.append([])
            for colonne in range (4):
                list_tuile[ligne].append(Frame(game_2048,borderwidth=2, relief="solid",height = 100, width = 100,bg=TILES_BG_COLOR[0]))
                list_tuile[ligne][colonne].grid(row=ligne,column=colonne)
        return(list_tuile)
    
    #ATTENTION lors de la création d'un frame, sa hauteur et sa largeur vaut 0 de base : modifier directement lors de la création par height= et width=
    
    def update_graphical_grid(grid_game):
        #cette fonction ne marche que pour les grilles 4x4
        list_tuile=[]
        list_label=[]
        for ligne in range (4):
            list_tuile.append([])
            list_label.append([])
    
            #pour chaque ligne
            for colonne in range (4):
                #on liste les colonnes où il va y avoir des numéros
                list_colonne_wt_label=[]
                #on regarde la valeur de la tuile
                value_tuile=grid_game[ligne][colonne]
                #si la valeur est zero, il n'y a pas de label
                if value_tuile==0 :
                    list_tuile[ligne].append(Frame(game_2048,borderwidth=2, relief="solid",height = 100, width = 100,bg=TILES_BG_COLOR[0]))
                #sinon on dit crée un label et retenir sa position pour le positionner
                else :
                    #création de la tuile
                    list_tuile[ligne].append(Frame(game_2048,borderwidth=2, relief="solid",height = 100, width = 100,bg=TILES_BG_COLOR[value_tuile]))
                    #création du label
                    list_label[ligne].append(Label(list_tuile[ligne][colonne],text=str(value_tuile),fg=TILES_FG_COLOR[value_tuile],bg=TILES_BG_COLOR[value_tuile],height = 5, width = 10,font=TILES_FONT))
                    #mémoire de sa position
                    list_colonne_wt_label.append(colonne)
                #on positionne correctement le label
                for lab in range (len(list_colonne_wt_label)):
                    list_label[ligne][lab].grid(row=ligne,column=list_colonne_wt_label[lab])
                #on positionne correctement les tuiles
                list_tuile[ligne][colonne].grid(row=ligne,column=colonne)
        return(list_tuile)
    #FIN FONCTION
    
    
    #EXECUTION
    
    game_2048=graphical_inti()
    grid_game=init_game()
    grid_size=4
    background=Frame(game_2048)
    graphical_grid=[]
    
    graphical_grid=update_graphical_grid(grid_game)
    
    game_2048.mainloop()