diff --git a/grid.c b/grid.c
index e1a4b5eaf00c166cf0b9cd2c0c030c5d5af9d599..e599ba3d8a642af568fb193d976878f8c8bb9354 100644
--- a/grid.c
+++ b/grid.c
@@ -1,6 +1,8 @@
 #include <stdlib.h>
 #include <stdio.h>
+#include <ncurses.h>
 #include "grid.h"
+#include "player.h"
 
 grid *creer_grid(int row, int column)
 {
@@ -69,6 +71,10 @@ grid *init_level(const char *file_path)
         while (*buffer && *buffer != '\n')
         {
             level->game_grid[current_row][current_column] = *buffer;
+            if (*buffer == '@') {
+                level->player.x = current_column;
+                level->player.y = current_row;
+            }
 
             current_column += 1;
             buffer += 1;
@@ -79,3 +85,30 @@ grid *init_level(const char *file_path)
     fclose(file);
     return level;
 }
+
+void display_stdio(grid *G) {
+    for (int row = 0; row < G->row_number; row++) {
+        for (int column = 0; column < G->column_number; column++) {
+            printf("%c", G->game_grid[row][column]);
+        }
+        printf("\n");
+    }
+}
+
+void display_ncurses(grid *G) {
+    initscr();
+    printw("Appuyez sur \"q\" pour quitter\n\n");
+    for (int row = 0; row < G->row_number; row++) {
+        for (int column = 0; column < G->column_number; column++) {
+            printw("%c", G->game_grid[row][column]);
+        }
+        printw("\n");
+    }
+    refresh();
+    char quitCar = '\0';
+    noecho();
+    while (quitCar != 'q') {
+        quitCar = (char) getch();
+    }
+    endwin();
+}
diff --git a/grid.h b/grid.h
index 86b14c4e7a645c55ccf3aec9812e9c98e4baa845..8f35be3f57ecffdeda70862ce8a35a1728991a4b 100644
--- a/grid.h
+++ b/grid.h
@@ -1,6 +1,8 @@
 #ifndef GRID_HEADER
 #define GRID_HEADER
 
+#include "player.h"
+
 enum CaseType
 {
     WALL = '#',
@@ -20,6 +22,7 @@ typedef struct Grid
     enum CaseType **game_grid; ///< Tableau contenant les entitÊs prÊsents dans le jeu
     int column_number;         ///< Nombre de colonne de game_grid
     int row_number;            ///< Nomber de ligne de game_grid
+    Player player;             ///< Structure pour stocker la position du joueur
 } grid;
 
 grid *init_level(const char *file_path);
@@ -28,4 +31,8 @@ grid *creer_grid(int row, int column);
 
 void free_grid(grid *G);
 
+void display_stdio(grid *G);
+
+void display_ncurses(grid *G);
+
 #endif
diff --git a/player.h b/player.h
new file mode 100644
index 0000000000000000000000000000000000000000..7a4dd4c0c57fe409d40fe8a9f85e5d6bbf50eb76
--- /dev/null
+++ b/player.h
@@ -0,0 +1,18 @@
+#ifndef PLAYER_HEADER
+#define PLAYER_HEADER
+
+typedef struct player {
+    int x;
+    int y;
+} Player;
+
+enum Direction {
+    LEFT = 'h',
+    BOTTOM = 'j',
+    TOP = 'k',
+    RIGHT = 'l'
+};
+
+
+
+#endif