diff --git a/travail_de_groupe/chef_oeuvre/Res/grass.png b/travail_de_groupe/chef_oeuvre/Res/grass.png
new file mode 100755
index 0000000000000000000000000000000000000000..3f95575121fe0814df1dd404a32a9984de7be841
Binary files /dev/null and b/travail_de_groupe/chef_oeuvre/Res/grass.png differ
diff --git a/travail_de_groupe/chef_oeuvre/Res/tree.png b/travail_de_groupe/chef_oeuvre/Res/tree.png
new file mode 100755
index 0000000000000000000000000000000000000000..4d92c05b4af9e8bdf2c0d855326784b6eebcc846
Binary files /dev/null and b/travail_de_groupe/chef_oeuvre/Res/tree.png differ
diff --git a/travail_de_groupe/chef_oeuvre/map.txt b/travail_de_groupe/chef_oeuvre/map.txt
new file mode 100644
index 0000000000000000000000000000000000000000..b0f58501d0a50ef7e8b4d80d6cd5f77d734046da
--- /dev/null
+++ b/travail_de_groupe/chef_oeuvre/map.txt
@@ -0,0 +1,20 @@
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 1 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
\ No newline at end of file
diff --git a/travail_de_groupe/chef_oeuvre/run b/travail_de_groupe/chef_oeuvre/run
index 554b566ca5360f14ce06a413e140f4a4e9f01449..361f55c337fa28a4b4ba31286731add205f453ce 100755
Binary files a/travail_de_groupe/chef_oeuvre/run and b/travail_de_groupe/chef_oeuvre/run differ
diff --git a/travail_de_groupe/chef_oeuvre/src/gest_event.c b/travail_de_groupe/chef_oeuvre/src/gest_event.c
index d57aab50b03e5c9634d50d5ce73e9cf84fc87b70..aefb6558ba9509d558cb62a57d485f09e56fa6f2 100644
--- a/travail_de_groupe/chef_oeuvre/src/gest_event.c
+++ b/travail_de_groupe/chef_oeuvre/src/gest_event.c
@@ -34,7 +34,7 @@ void *EventLoop(void *arg){
     while(running){
         switch(game_state){
             case MENU : gestMenu();break;
-            //case GAME : gestGame();break;
+            case GAME : gestMenu();break;
             default:printf("game state fault");break;
         }
     }
diff --git a/travail_de_groupe/chef_oeuvre/src/main.c b/travail_de_groupe/chef_oeuvre/src/main.c
index 8667568e52ad38e643c83f3895d9476c2627b3e1..50d977d8afd79ca4d867f8e8aefe3b30d31e7af6 100644
--- a/travail_de_groupe/chef_oeuvre/src/main.c
+++ b/travail_de_groupe/chef_oeuvre/src/main.c
@@ -7,6 +7,7 @@ int game_state;
 int main(){
     running = 1;
     game_state = GAME;
+    readMapFromFile("map.txt");
 
     MainLoop();
 
diff --git a/travail_de_groupe/chef_oeuvre/src/main.h b/travail_de_groupe/chef_oeuvre/src/main.h
index eb08e389951121f3d8efafe7a7b22f11dae367fe..884eef44162b3dc78604ec80e8ea9aaf792f5515 100644
--- a/travail_de_groupe/chef_oeuvre/src/main.h
+++ b/travail_de_groupe/chef_oeuvre/src/main.h
@@ -16,6 +16,7 @@
 
 #include "render.h"
 #include "gest_event.h"
+#include "map.h"
 
 
 #define MENU 0
diff --git a/travail_de_groupe/chef_oeuvre/src/map.c b/travail_de_groupe/chef_oeuvre/src/map.c
new file mode 100644
index 0000000000000000000000000000000000000000..120461b8009a93fd238335bd47a124a0757f35f6
--- /dev/null
+++ b/travail_de_groupe/chef_oeuvre/src/map.c
@@ -0,0 +1,19 @@
+#include "map.h"
+
+int map[MAPSIZE][MAPSIZE];
+
+void readMapFromFile(char * filename){
+    FILE * fp;
+    int i, j;
+    fp = fopen(filename, "r");
+    if(fp == NULL){
+        printf("Error opening file\n");
+        exit(1);
+    }
+    for(i = 0; i < MAPSIZE; i++){
+        for(j = 0; j < MAPSIZE; j++){
+            fscanf(fp, "%d", &map[i][j]);
+        }
+    }
+    fclose(fp);
+}
\ No newline at end of file
diff --git a/travail_de_groupe/chef_oeuvre/src/map.h b/travail_de_groupe/chef_oeuvre/src/map.h
new file mode 100644
index 0000000000000000000000000000000000000000..f6b0c73635f72839af1321e38deaee3bb3249b63
--- /dev/null
+++ b/travail_de_groupe/chef_oeuvre/src/map.h
@@ -0,0 +1,14 @@
+#ifndef MAP_HEADER_
+#define MAP_HEADER_
+
+#include "main.h"
+
+#define MAPSIZE 20
+
+
+
+extern int map[MAPSIZE][MAPSIZE];
+
+void readMapFromFile(char * filename);
+
+#endif
\ No newline at end of file
diff --git a/travail_de_groupe/chef_oeuvre/src/render.c b/travail_de_groupe/chef_oeuvre/src/render.c
index b0f7d94e2fee0692bb61ab8895cbf41e3a4b51b4..3479a3fa49a80b15c84e4e6d15e1a91494c766c7 100644
--- a/travail_de_groupe/chef_oeuvre/src/render.c
+++ b/travail_de_groupe/chef_oeuvre/src/render.c
@@ -4,9 +4,15 @@ SDL_Window *window;
 SDL_Renderer *renderer;
 
 TTF_Font *RobotoFont;
+SDL_DisplayMode ScreenDimension;
+
+SDL_Surface * grassSurface;
+SDL_Texture * grassTexture;
+
+SDL_Surface * treeSurface;
+SDL_Texture * treeTexture;
 
 void CreateWindow(){
-    SDL_DisplayMode ScreenDimension;
 
     if (SDL_Init(SDL_INIT_VIDEO) != 0){
         printf("Couldn't create window.");
@@ -38,10 +44,44 @@ void CreateWindow(){
 
 }
 
+void drawMap(){
+    int i, j;
+    SDL_Rect rect;
+    rect.h = CELLSIZE;
+    rect.w = CELLSIZE;
+    rect.x = (ScreenDimension.w - (MAPSIZE * CELLSIZE)) / 2; // centers the drawing
+    rect.y = 0;
+    for(i = 0; i < MAPSIZE; i++){
+        for(j = 0; j < MAPSIZE; j++){
+            SDL_RenderCopy(renderer, grassTexture, NULL, &rect);
+            if(map[i][j] == 1){
+                SDL_RenderCopy(renderer, treeTexture, NULL, &rect);
+            }
+            rect.x += CELLSIZE;
+        }
+        rect.x = (ScreenDimension.w - (MAPSIZE * CELLSIZE)) / 2;
+        rect.y += CELLSIZE;
+    }
+}
+
+void drawGame(){
+    SDL_RenderClear(renderer);
+    drawMap();
+    SDL_RenderPresent(renderer);
+}
 
 void MainLoop(){
     CreateWindow();
 
+    grassSurface = IMG_Load("Res/grass.png");
+    grassTexture = SDL_CreateTextureFromSurface(renderer, grassSurface);
+
+    treeSurface = IMG_Load("Res/tree.png");
+    treeTexture = SDL_CreateTextureFromSurface(renderer, treeSurface);
+
+    SDL_FreeSurface(grassSurface);
+    SDL_FreeSurface(treeSurface);
+
     unsigned int a = SDL_GetTicks();
     unsigned int b = SDL_GetTicks();
     double delta = 0;
@@ -62,7 +102,7 @@ void MainLoop(){
                     //Menu();
                     break;
                 case GAME:
-                    //Game();
+                    drawGame();
                     break;
             }
         }
diff --git a/travail_de_groupe/chef_oeuvre/src/render.h b/travail_de_groupe/chef_oeuvre/src/render.h
index 75f94e37b205ac0527e22d0a41fdef98e84dc682..4a44e61a82f5212317ff2966cbd6cd19b9084b7f 100644
--- a/travail_de_groupe/chef_oeuvre/src/render.h
+++ b/travail_de_groupe/chef_oeuvre/src/render.h
@@ -5,6 +5,7 @@
 #include "gest_event.h"
 
 #define FPS_TO_GET 60
+#define CELLSIZE (ScreenDimension.h / MAPSIZE)
 
 extern SDL_Window *window;
 extern SDL_Renderer *renderer;