diff --git a/README.md b/README.md
index f6def1084e072e0954c31ea9205d2adcb7788098..df9e7f0851adf8e0e66e5117146b39b8549e5626 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,3 @@
 # Sokoban
-Ce dépôt contient le code du sokoban qui sera demandé en tp pour les étudiants de L2S3 à l'ufr
+Vous trouverez ici les fichiers de base pour le TP noté concernant le jeu du Sokoban
+Les consignes et l'énoncé se trouve à cette address [TP Sokoban](https://techdevprintemps2022.pages.unistra.fr/TP_TechDevEnonce/)
diff --git a/grid.c b/grid.c
new file mode 100644
index 0000000000000000000000000000000000000000..3ca3833d41c1706809236cfa8dcf577b344e9c00
--- /dev/null
+++ b/grid.c
@@ -0,0 +1,32 @@
+#include "grid.h"
+#include <stdlib.h>
+#include <stdio.h>
+
+void init_level(const char* file_path){
+	// ouverture du fichier en mode lecture
+	FILE* file = fopen(file_path, "r");
+	if(!file){
+		fprintf(stderr, "Error %s not found", file_path);
+		exit(-1);
+	}
+	char line[100] = {0};
+	int number_column = 0; // nombre de colonne
+	int number_row = 0; /// nombre de ligne
+	int number_goals = 0;
+	// on lit la première ligne du fichier
+	fgets(line, 100, file);
+	sscanf(line, "%d %d %d", &number_column, &number_row, &number_goals);
+	int current_row = 0;
+	int current_goal = 0;
+	// On lit le fichier ligne par ligne jusqu'à la fin du fichier
+	while(fgets(line, 100, file) != NULL){
+		char* buffer = line;
+		int current_column = 0;
+		while(*buffer && *buffer != '\n'){
+			current_column += 1;
+		}		
+		current_row += 1;
+	}
+	// fermeture du fichier
+	fclose(file);
+}
diff --git a/grid.h b/grid.h
new file mode 100644
index 0000000000000000000000000000000000000000..649addda12948965abd5fe319fcd49b785919b66
--- /dev/null
+++ b/grid.h
@@ -0,0 +1,22 @@
+#ifndef GRID_HEADER
+#define GRID_HEADER
+enum CaseType{
+	WALL = '#',
+	BOX = '$',
+	PLAYER = '@',
+	GOAL = '.',
+	NONE = ' '
+};
+/**
+ * @struct Grid grid.h
+ * @brief Cette structure contient les informations 
+ * concernant la grille du jeu et son contenu
+ */
+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
+};
+void init_level(const char* file_path);
+
+#endif
diff --git a/level1.txt b/level1.txt
new file mode 100644
index 0000000000000000000000000000000000000000..69f90c1da3061fba0ae1a637cfccf05d9140c913
--- /dev/null
+++ b/level1.txt
@@ -0,0 +1,12 @@
+26 11 2
+##########################
+#                        #
+#      $ ##########      #
+#        #               #
+#        #               #
+#    .   #  @  $         #
+#        #               #
+#        #               #
+#      $        .        #
+#                        #
+##########################
diff --git a/main.c b/main.c
new file mode 100644
index 0000000000000000000000000000000000000000..115bb67db044686bbc0ca7f894d79216e2d8c8bd
--- /dev/null
+++ b/main.c
@@ -0,0 +1,17 @@
+#include <stdio.h>
+#include "grid.h"
+#include <stdbool.h>
+int main(void){
+	
+	bool run = true;
+	while(run){
+		char entry = fgetc(stdin);
+		switch(entry){
+			case 'q' :{
+				run = false;
+				break;
+			}
+		}
+	}
+}
+