diff --git a/game2048/grid_2048.py b/game2048/grid_2048.py
index 2f0cc12506233400395a80e49c588e06c2a3baf5..d0b901648506e9eb3f8342bfca379586702177da 100644
--- a/game2048/grid_2048.py
+++ b/game2048/grid_2048.py
@@ -87,8 +87,33 @@ def grid_to_string_with_size_and_theme(grid, theme,n):
 def long_value_with_theme(grid,theme):
     return max(len(theme[v]) for v in get_all_tiles(grid))
 
-
-#FONCTIONNALITE 4
+# FONCTIONNALITE 3
+
+def read_player_command():
+    deplacements = {'g':"left",'d':"right",'h':"up",'b':"down"}
+    move = input("Entrez votre commande (g (gauche), d (droite), h (haut), b(bas)): ")
+    while move not in ['g','d','h','b']:
+        move = input("Commande invalide. \n Entrez votre commande (g (gauche), d (droite), h (haut), b(bas)): ")
+    return deplacements[move]
+
+def read_size_grid():
+    size = input("Choisissez la taille de la grille : ")
+    while True:
+        try:
+            size = int(size)
+        except:
+            size = input("Taille invalide, choisissez un nombre entier. \n Choisissez la taille de la grille : ")
+        else:
+            break
+    return size
+
+def read_theme_grid():
+    theme = input("Choisissez le numéro du thème : ")
+    while theme not in ['0','1','2']:
+        theme = input("Ce thème n'existe pas ! \n Choisissez le numéro du thème : ")
+    return THEMES[theme]
+    
+# FONCTIONNALITE 4
 
 def del_zeros(row):
     #fonction permettant de supprimer les zeros d'une ligne, qui sont inutiles lors du processus de fusion des cases
@@ -189,8 +214,12 @@ def did_you_win (grid):
 
 #Fonctinnalité 6
 
+<<<<<<< HEAD
 def list_moove_possible (grid):
     #renvoie la liste des deplacements possibles
+=======
+def list_move_possible (grid):
+>>>>>>> c7f7a81e42fe1f954e38b492c9d251128aa9cf68
     list_bool=move_possible(grid)
     list_final=[]
     if list_bool[0]:
@@ -213,6 +242,7 @@ def random_play():
 
     #phase de jeu
     while not is_game_over(grid_game):
+<<<<<<< HEAD
 
         #pour chaque tour
         d=rd.choice(list_moove_possible(grid_game)) #on choisi un mouvement
@@ -222,6 +252,13 @@ def random_play():
         print("\n***********************************\n") #permet aux différentes grilles d'être plus lisible
 
     #vérification si le jeu est gagnant ou perdant
+=======
+        d=rd.choice(list_move_possible(grid_game))
+        grid_game=move_grid(grid_game,d)
+        grid_game=grid_add_new_tile(grid_game)
+        print(grid_to_string_with_size_and_theme(grid_game,THEMES["0"],4))
+        print("\n***********************************\n")
+>>>>>>> c7f7a81e42fe1f954e38b492c9d251128aa9cf68
     if did_you_win(grid_game):
         print("CONGRATS ! YOU WON !!!")
     else :
diff --git a/game2048/test_grid_2048.py b/game2048/test_grid_2048.py
index 3acae3a0870aef18bc3e636a1ce84d8a527cee61..cf74e5a11df7fc1d11790350d27eb0f005a79e5e 100644
--- a/game2048/test_grid_2048.py
+++ b/game2048/test_grid_2048.py
@@ -1,6 +1,8 @@
 from game2048.grid_2048 import *
 from pytest import *
 
+# FONCTIONNALITE 1
+
 def test_create_grid():
     assert create_grid(0) == []
     assert create_grid(1) == [[' ']]
@@ -40,6 +42,8 @@ def test_init_game():
     assert 2 or 4 in tiles
     assert len(get_empty_tiles_positions(grid)) == 14
 
+#FONCTIONNALITE 2
+
 #def test_grid_to_string():
 #    a =""" === === === ===
 #    |   |   |   |   |
@@ -62,6 +66,13 @@ def test_long_value_with_theme():
     assert long_value_with_theme(grid,THEMES["1"]) == 2
     assert long_value_with_theme(grid,THEMES["2"]) == 1
 
+#FONCTIONNALITE 3
+
+def test_read_player_command(monkeypatch):
+     monkeypatch.setattr('builtins.input', lambda x: "d")
+
+# FONCTIONNALITE 4
+
 def test_move_row_left():
     assert move_row_left([0, 0, 0, 2]) == [2, 0, 0, 0]
     assert move_row_left([0, 2, 0, 4]) == [2, 4, 0, 0]