diff --git a/Makefile b/Makefile
index 111d09b9a647f52029fb794d541a4af04e910369..7d92f84b231b2e49011862d770d61ff9edece1eb 100644
--- a/Makefile
+++ b/Makefile
@@ -4,7 +4,7 @@ LIBS =  -L /SDL2_ttf/.libs -L /SDL2_image/.libs
 LDFLAGS = `sdl2-config --cflags --libs` 
 INCLUDES =  -I ./SDL2_ttf -I ./SDL2_image
 EXEC = main
-SRC = main.c player.c map.c textures.c
+SRC = main.c player.c map.c textures.c data.c 
 OBJ = $(SRC:.c=.o)
 
 all: $(EXEC)
diff --git a/data.c b/data.c
index 3357bf80c7269352db0327f862cb49edcd8da5a8..7ceb10d5f405eb20dfc5147c922c3e1fc1b85c8a 100644
--- a/data.c
+++ b/data.c
@@ -1,12 +1,5 @@
 #include "data.h"
 
-base_t* init_base(player_t* player,int px,int py,int postx,int posty){
-    base_t* base= malloc(sizeof(base_t));
-    base->gameover=0;
-    base->chances=3;
-    base->player=player;
-    base->wall=init_wall(px,py,postx,posty);
-}
 walls_t* init_wall(int px,int py,int postx,int posty){
     walls_t* walls= malloc(sizeof(walls_t));
     walls->bricks.w=BRICKW;
@@ -17,5 +10,5 @@ walls_t* init_wall(int px,int py,int postx,int posty){
     walls->Src.y=BRICKH*py;
     walls->Src.w=BRICKW;
     walls->Src.h=BRICKH;
-}
-//void gameOver(char** tab,int nbl,int nbc,base_t* base);
+    return walls;
+}
\ No newline at end of file
diff --git a/data.h b/data.h
index 7d786448ba207b6cd6c45b559cc3aca6d857c67f..bf755b22674d5cf93add5eae9f03ee9670414002 100644
--- a/data.h
+++ b/data.h
@@ -12,19 +12,10 @@ typedef struct walls_s
 {
     SDL_Rect bricks;
     SDL_Rect Src;
+    SDL_Texture* texture;
 }walls_t;
 
 
-typedef struct base_s
-{
-    walls_t* wall;
-    player_t* player;
-    int gameover;
-    int chances;
-
-}base_t;
-base_t* init_base(player_t* player,int px,int py,int postx,int posty);
 walls_t* init_wall(int px,int py,int postx,int posty);
-void gameOver(char** tab,int nbl,int nbc,base_t* base);
 
 #endif
\ No newline at end of file
diff --git a/data.o b/data.o
new file mode 100644
index 0000000000000000000000000000000000000000..c3d9e8eb6c42ee6f4a9633cad815151659319c94
Binary files /dev/null and b/data.o differ
diff --git a/fonctions_SDL.c b/fonctions_SDL.c
deleted file mode 100644
index 64ca2a792c05af2e650a9393c0ee18abf7e2d412..0000000000000000000000000000000000000000
--- a/fonctions_SDL.c
+++ /dev/null
@@ -1,11 +0,0 @@
-#include "fonctions_SDL.h"
-
-SDL_Texture* charger_image (const char* nomfichier, SDL_Renderer* renderer)
-{
-    SDL_Surface *img = SDL_LoadBMP(nomfichier);
-    SDL_Texture* texture = SDL_CreateTextureFromSurface(renderer, img);
-    // Libérer une surface
-    SDL_FreeSurface(img);
-    return texture;
-}
-
diff --git a/fonctions_SDL.h b/fonctions_SDL.h
deleted file mode 100644
index 566f6e222a850dbfbd75765ee3efbf6aba1c9a3f..0000000000000000000000000000000000000000
--- a/fonctions_SDL.h
+++ /dev/null
@@ -1,12 +0,0 @@
-#ifndef FONCTIONS_SDL_H
-#define FONCTIONS_SDL_H
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdbool.h>
-#include <SDL2/SDL.h>
-
-
-SDL_Texture* charger_image (const char* nomfichier, SDL_Renderer* renderer);
-
-#endif
diff --git a/main b/main
index 740ba5eea2b2ecca9bda35580b7975865a2076ca..b21f89a0c997f3903bb15d701406f27fef76937d 100644
Binary files a/main and b/main differ
diff --git a/main.c b/main.c
index 1956978d1484371bd5ab7735fb54cf919f248196..f632906bd014abb3e38fca98e900995e63b8b907 100644
--- a/main.c
+++ b/main.c
@@ -6,10 +6,10 @@ int main()
     int nbc = 0;
     char** map =lire_map("ressources/maze_map.txt");
     taille_map("ressources/maze_map.txt",&nbl,&nbc);
-    player_t*player = init_player(32,32);
+    player_t*player = init_player(1,1);
     SDL_Window* fenetre; // Déclaration de la fenêtre
-    bool terminer = false;
-
+    walls_t* walls;
+    bool terminer=false;
     if(SDL_Init(SDL_INIT_VIDEO) < 0) // Initialisation de la SDL
     {
         printf("Erreur d’initialisation de la SDL: %s",SDL_GetError());
@@ -30,22 +30,8 @@ int main()
     ecran = SDL_CreateRenderer(fenetre, -1, SDL_RENDERER_ACCELERATED);
     // Charger l’images
     SDL_Texture* sprite= charger_image("ressources/pavage.bmp",ecran);
-    //player->texture = charger_image("ressources/personnage1.bmp",ecran);
-    
-    int width;
-    int height; 
-    int widthP;
-    int heightP;
-    Uint32 format;
-    int access;
-    int accessP;
-    Uint32 formatP;
-    SDL_QueryTexture(sprite,&format,&access,&width,&height);
-    //SDL_QueryTexture(player->texture,&formatP,&accessP,&widthP,&heightP);
-    height=height/10;
-    width=width/16;
-    widthP=widthP/6;
-    SDL_Event event;
+    player->texture= charger_image("ressources/personnage.bmp",ecran);
+        SDL_Event event;
     // Boucle principale
     while(!terminer){
         while (SDL_PollEvent(&event)){
@@ -60,73 +46,43 @@ int main()
 			}
 			if(event.key.keysym.sym == SDLK_LEFT){
 				movement(map,player,'q'); // fléche vers la gauche
-			}
+                change_movement_player(player,1,1);
+            }
 			if(event.key.keysym.sym == SDLK_RIGHT){
 				movement(map,player,'d'); // fléche vers la droite
-			}
+                change_movement_player(player,1,2);
+            }
 			if(event.key.keysym.sym == SDLK_UP){
                 movement(map,player,'z');// fléche vers le haut
+                change_movement_player(player,1,3);
 			}
 			if(event.key.keysym.sym == SDLK_DOWN){
                 movement(map,player,'s');// fléche vers le bas
-			}
+                change_movement_player(player,1,0);
+            }
 		}
         
     }
         SDL_RenderClear(ecran);
-        SDL_Rect DestR[160];
-        SDL_Rect DestR_P[6];
-        SDL_Rect Src;
         for (int i=0;i<nbl;i++){
             for (int j = 0; j< nbc; j++)
             {
                 if(map[i][j]=='L'){
-                    DestR[i].x=8*width;
-                    DestR[i].y=3*height;
-                    DestR[i].w=width;
-                    DestR[i].h=height;
-                    Src.x=width*j;
-                    Src.y=height*i;
-                    Src.w=width;
-                    Src.h=height;
-                    SDL_RenderCopy(ecran,sprite,&DestR[i],&Src);
+                    walls=init_wall(j,i,9,3);
+                    SDL_RenderCopy(ecran,sprite,&(walls->bricks),&(walls->Src));
                    
                 }
                 else if(map[i][j]=='#'){
-                    DestR[i].x=9*width;
-                    DestR[i].y=3*height;
-                    DestR[i].w=width;
-                    DestR[i].h=height;
-                    Src.x=width*j;
-                    Src.y=height*i;
-                    Src.w=width;
-                    Src.h=height;
-                    SDL_RenderCopy(ecran,sprite,&DestR[i],&Src);
-              
+                    walls=init_wall(j,i,10,3);
+                    SDL_RenderCopy(ecran,sprite,&(walls->bricks),&(walls->Src));              
                 }
                 else if (map[i][j]=='S'){
-                    DestR[i].x=13*width;
-                    DestR[i].y=3*height;
-                    DestR[i].w=width;
-                    DestR[i].h=height;
-                    Src.x=width*j;
-                    Src.y=height*i;
-                    Src.w=width;
-                    Src.h=height;
-                    SDL_RenderCopy(ecran,sprite,&DestR[i],&Src);
-              
+                    walls=init_wall(j,i,13,3);
+                    SDL_RenderCopy(ecran,sprite,&(walls->bricks),&(walls->Src));
                 }
             }
         }
-        DestR_P[player->y].x=1*widthP;
-        DestR_P[player->y].y=0;
-        DestR_P[player->y].w=widthP;
-        DestR_P[player->y].h=heightP;
-        Src.x=widthP*player->x;
-        Src.y=heightP*player->y;
-        Src.w=widthP;
-        Src.h=heightP;
-        //SDL_RenderCopy(ecran,player->texture,&DestR_P[player->y],&Src); 
+        SDL_RenderCopy(ecran,player->texture,&(player->DestR),&(player->Src)); 
         SDL_RenderPresent(ecran);
         SDL_UpdateWindowSurface(fenetre);
     }
diff --git a/main.o b/main.o
new file mode 100644
index 0000000000000000000000000000000000000000..08c29c80ae1ab08815cefa7486f4e5fa6340075c
Binary files /dev/null and b/main.o differ
diff --git a/map.o b/map.o
new file mode 100644
index 0000000000000000000000000000000000000000..d34eb32d16bdece090fccb4237a5d13e1fe5c84d
Binary files /dev/null and b/map.o differ
diff --git a/player.c b/player.c
index 028b3377ac28c1c1c78f83209e133185830cdb94..71826ed445438a3db62bc020c3381e67ec542494 100644
--- a/player.c
+++ b/player.c
@@ -15,17 +15,24 @@ player_t* init_player(int posc,int posl){
     player->Src.h=PLAYERH;
     player->Src.x=PLAYERW*player->x;
     player->Src.y=PLAYERH*player->y;
+    player->lives=3;
+    player->gameover=0;
     return player;
 }
 
 void change_movement_player(player_t* player,int posc,int posl){
+    player->DestR.h=PLAYERH;
+    player->DestR.w=PLAYERW;
     player->DestR.x=PLAYERW*posc;
     player->DestR.y=PLAYERH*posl;
+    player->Src.w=PLAYERW;
+    player->Src.h=PLAYERH;
+    player->Src.x=PLAYERW*player->x;
+    player->Src.y=PLAYERH*player->y;
 }
 
 
-/*
-void gameOver(char** tab,int nbl,int nbc,player_t* player){
+void gamrover(player_t* player,char** tab, int nbc,int nbl){
     for (int i = 0; i<nbl ; i++)
     {
         for (int j = 0; j<nbc; j++)
@@ -38,7 +45,7 @@ void gameOver(char** tab,int nbl,int nbc,player_t* player){
         }
     }
 }
-*/
+
 bool handle_movement_up(char** tab,player_t*player)
 {
     if (tab[player->y-1][player->x]=='L'|| tab[player->y-1][player->x]=='S'){
diff --git a/player.h b/player.h
index ff7ac83ba49c0c262ea4acb19b48b0d2593ea467..bc074458eb9b38a2264378826846d96f1e52d89d 100644
--- a/player.h
+++ b/player.h
@@ -14,7 +14,10 @@ typedef struct player_s
     int score;
     SDL_Rect DestR;
     SDL_Rect Src;
+    SDL_Texture* texture;
     int speed;
+    int lives;
+    int gameover;
 }player_t;
 
 player_t* init_player(int posc,int posl);
@@ -24,6 +27,7 @@ bool handle_movement_down(char** tab,player_t*player);
 bool handle_movement_left(char** tab,player_t*player);
 bool handle_movement_right(char** tab,player_t*player);
 void movement(char** tab,player_t *player,char deplacement);
+void gamrover(player_t* player,char** tab, int nbc,int nbl);
 void free_player(player_t* player);
 
 #endif
\ No newline at end of file
diff --git a/player.o b/player.o
new file mode 100644
index 0000000000000000000000000000000000000000..eead894fb1f0bd998a24149d7b64fb7cd399147e
Binary files /dev/null and b/player.o differ
diff --git a/ressources/personnage.bmp b/ressources/personnage.bmp
new file mode 100644
index 0000000000000000000000000000000000000000..e9617918c5d5e3106d1a790944abc9234906435f
Binary files /dev/null and b/ressources/personnage.bmp differ
diff --git a/ressources/personnage1.bmp b/ressources/personnage1.bmp
deleted file mode 100644
index 6129c4cfb40ae3ab69ec03729c387f57cdd66fc4..0000000000000000000000000000000000000000
Binary files a/ressources/personnage1.bmp and /dev/null differ
diff --git a/textures.o b/textures.o
new file mode 100644
index 0000000000000000000000000000000000000000..d2b5a1172fb8c4b8082578fb8d75347cd2fe8c8d
Binary files /dev/null and b/textures.o differ