diff --git a/game2048/grid_2048.py b/game2048/grid_2048.py
index 7fb93fdfee8fc38391309da466adce2fced45036..76cdfe03f8216af751d4ab7da4520e95e6727f72 100644
--- a/game2048/grid_2048.py
+++ b/game2048/grid_2048.py
@@ -117,6 +117,43 @@ def move_row_left(row):
 def move_row_right(row):
     return move_row_left(row[::-1])[::-1]
 
+def move_grid(grid,d):
+    taille=len(grid)
+    if d=="left":
+        new_grid=[]
+        for ligne in range (taille):
+            row=grid[ligne]
+            new_grid.append(move_row_left(row))
+    elif d=="right":
+        new_grid=[]
+        for ligne in range (taille):
+            row=grid[ligne]
+            new_grid.append(move_row_right(row))
+    else:
+        grid_t=transpose_grid(grid)
+        new_grid_t=[]
+        if d=="up":
+            for ligne in range (taille):
+                row=grid_t[ligne]
+                new_grid_t.append(move_row_left(row))
+        else :
+            for ligne in range (taille):
+                row=grid_t[ligne]
+                new_grid_t.append(move_row_right(row))
+        new_grid=transpose_grid(new_grid_t)
+    return(new_grid)
+
+def transpose_grid (liste):
+   n=len(liste)
+   transpo_liste=[]
+   for colonne in range (n) :
+       ligne_transpo=[]
+       for ligne in range (n) :
+          ligne_transpo.append(liste[ligne][colonne])
+       transpo_liste.append(ligne_transpo)
+   return(transpo_liste)
+
+
 # FONCTIONNALITE 5
 
 def is_grid_full(grid):