import random as rd

def create_grid(taille):
    #la taille doit etre supérieure à 1
    grille = []
    ligne =[]
    for case in range(taille):
        ligne.append(' ') #on crée une ligne contenant le bon nombre de cases
    for nb_ligne in range (taille):
        grille.append(ligne.copy()) #permet de découpler les lignes
    return grille

def add_new_tile_at_position(name_grid,ligne,pos_ligne,value):
    #la position indiqué doit etre cohérente avec les dimensions de la grille considérée
    name_grid[ligne][pos_ligne]=value
    #attention, la fonction modifie la liste passée en argument !
    return(name_grid)

grid=create_grid(4)
add_new_tile_at_position(grid,2,1,4)
print(grid)

def choose_value_new_tile():
    value=rd.choice([2,2,2,2,2,2,2,2,2,4])
    return(value)

def get_all_tiles (name_grid):
    nb_ligne=len(name_grid)
    nb_colonne=len(name_grid[0]) #on suppose que la grille a au moins une ligne
    tiles=[]
    for ligne in range (nb_ligne):
        for colonne in range (nb_colonne):
            tile = name_grid[ligne][colonne]
            if tile == ' ':
                tiles.append(0)
            else :
                tiles.append(tile)
    return(tiles)

print(get_all_tiles(grid))