diff --git a/.vscode/settings.json b/.vscode/settings.json
index 27de834d67d37342165db9f07f7c12f5c16e7842..e99eb3d341fcd628102db037900fadfb48dc0e24 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -6,7 +6,8 @@
         "stdio.h": "c",
         "sprites.h": "c",
         "sdl2-ttf-light.h": "c",
-        "stdlib.h": "c"
+        "stdlib.h": "c",
+        "utility.h": "c"
     },
     "C_Cpp.errorSquiggles": "disabled"
 }
\ No newline at end of file
diff --git a/Makefile b/Makefile
index f5a768d72d02893930fe1167c573f126f86f5d88..60b0c1e24e78cbd219fd45c7be044e5bbca6d4ba 100644
--- a/Makefile
+++ b/Makefile
@@ -20,6 +20,9 @@ doc: $(PROG)
 	doxygen $(PROG)
 
 .PHONY: clean
+
+start: 
+	$(PROG)
 clean:
 	del /f /q *.o *~ $(PROG)
 	rd /s /q latex html
\ No newline at end of file
diff --git a/library/World/world.c b/library/World/world.c
index a0bcec589963c7ba110f9f0a248d4b9fc13e5763..ccc4f08cc6c89eec524573103147f2e4b3ce5a7f 100644
--- a/library/World/world.c
+++ b/library/World/world.c
@@ -1,5 +1,5 @@
 #include "world.h"
-
+#include "../utility/utility.h"
 
 void update_data(world_t *world){
     world->ligneArriver->y += (int)world->speed_h;
@@ -65,14 +65,21 @@ int handle_sprite_collide(sprite_t *sp1, sprite_t *sp2, world_t *world, int make
 
 
 void init_walls(world_t *world){
-    world->nb_murs = 6;
-    world->murs = malloc(sizeof(sprite_t) * 10);
-    world->murs[0] = init_sprite(world->murs[0], 48, 0, 3*METEORITE_SIZE, 6*METEORITE_SIZE);
-    world->murs[1] = init_sprite(world->murs[1], 252, 0, 3*METEORITE_SIZE, 6*METEORITE_SIZE);
-    world->murs[2] = init_sprite(world->murs[2], 16, -352, 1*METEORITE_SIZE, 5*METEORITE_SIZE);
-    world->murs[3] = init_sprite(world->murs[3], 188, -352, 7*METEORITE_SIZE, 5*METEORITE_SIZE);
-    world->murs[4] = init_sprite(world->murs[4], 48, -672, 3*METEORITE_SIZE, 6*METEORITE_SIZE);
-    world->murs[5] = init_sprite(world->murs[5], 252, -672, 3*METEORITE_SIZE, 6*METEORITE_SIZE);
+    world->nb_murs = 0;
+    world->murs = malloc(sizeof(sprite_t) * MAX_LENGTH*MAX_LINES);
+    int nblignes = 0;
+    char **txt = lirefile("maps/default.txt", &nblignes);
+    printf("aaiaa");
+    for (int i = 0; i < nblignes; i++) {
+        for (int j = 0; j < 26; j++) {
+            if (txt[i][j] == '1'){
+                world->murs[world->nb_murs] = init_sprite(world->murs[world->nb_murs], j*METEORITE_SIZE, i*METEORITE_SIZE, METEORITE_SIZE, METEORITE_SIZE);
+                world->nb_murs++;
+            }
+        }
+        printf("%s\n", txt[i]);
+    }
+    printf("aaaa");
 
 }
 
diff --git a/library/World/world.o b/library/World/world.o
index 060c0decb47e2b855d20b5afc654f6b2f57a1521..2675f57fe1da88dbd25d5bbf1553385a8194833c 100644
Binary files a/library/World/world.o and b/library/World/world.o differ
diff --git a/library/utility/utility.c b/library/utility/utility.c
index ae5de2ccb3af6f9bf488554331979d0e8d3eea31..74927a35b85c22d9bfdd1d9a1e3e092bd14b8260 100644
--- a/library/utility/utility.c
+++ b/library/utility/utility.c
@@ -21,4 +21,24 @@ char * int_to_str(int n) {
     char *str = malloc(sizeof(char) * 10);
     sprintf(str, "%d", n);
     return str;
+}
+
+char **lirefile(char *filename, int *num_lines) {
+    FILE *file = fopen(filename, "r");
+    if (file == NULL) {
+        perror("Error opening file");
+        return NULL;
+    }
+
+    char **lines = malloc(MAX_LINES * sizeof(char *));
+    *num_lines = 0;
+    char buffer[MAX_LENGTH];
+    while (fgets(buffer, MAX_LENGTH, file) != NULL && *num_lines < MAX_LINES) {
+        lines[*num_lines] = malloc(MAX_LENGTH * sizeof(char));
+        sprintf(lines[*num_lines], "%s", buffer);
+        (*num_lines)++;
+    }
+
+    fclose(file);
+    return lines;
 }
\ No newline at end of file
diff --git a/library/utility/utility.h b/library/utility/utility.h
index f3d178bf3d810ba12138475712e82cee2ea84e10..0cc74088edd88c02f5a16766b9ec7a3f5d856a3d 100644
--- a/library/utility/utility.h
+++ b/library/utility/utility.h
@@ -12,6 +12,8 @@
 
 #ifndef Utility_h
 #define Utility_h
+#define MAX_LINES 1000
+#define MAX_LENGTH 200
 
 /**
  * \brief Concatène plusieurs chaines de caractères
@@ -31,4 +33,14 @@ char * strcats(char* dest, int num_args, ...);
  */
 char * int_to_str(int n);
 
+/**
+ * \brief Lit un fichier et retourne un tableau de lignes
+ * 
+ * \param filename  Le nom du fichier
+ * \param num_lines  Le nombre de lignes
+ * \return char** 
+ */
+
+char ** lirefile(char *filename, int *num_lines);
+
 #endif
\ No newline at end of file
diff --git a/library/utility/utility.o b/library/utility/utility.o
index 2438f489adce30b549e42495996d36b39443b34e..33d9e361a2a8b4f81fdf340747aee3ffd720a1bd 100644
Binary files a/library/utility/utility.o and b/library/utility/utility.o differ
diff --git a/maps/default.txt b/maps/default.txt
new file mode 100644
index 0000000000000000000000000000000000000000..363f4e6991832f637feb6fe31b6b4f415512649e
--- /dev/null
+++ b/maps/default.txt
@@ -0,0 +1,2 @@
+010000000011110000000000
+001001111100011100000110
\ No newline at end of file
diff --git a/spacecorridor.exe b/spacecorridor.exe
index 7b741295f5dbf25ab6e5b4520d2b0818900af73d..00b12e42615231bc9d3f69e56c936d13f4c21939 100644
Binary files a/spacecorridor.exe and b/spacecorridor.exe differ