diff --git a/code/constant.h b/code/constant.h
index 92d709c9226d83504127c4487db5854a2107faca..95bdff035785770fb8a84ba3c621ae5f6c5f96a2 100644
--- a/code/constant.h
+++ b/code/constant.h
@@ -57,23 +57,13 @@
 /**
  * \brief Hauteur de l'ennemie du type 4
  */
-#define ENEMY_T4_HEIGHT 48 
+#define ENEMY_T4_HEIGHT 38 
 
 
 /**
  * \brief Largeur de l'ennemie du type 4
  */
-#define ENEMY_T4_WIDTH 38 
-
-/**
- * \brief Hauteur de l'ennemie du type 1
- */
-#define ENEMY_T1_HEIGHT 86
-
-/**
- * \brief Largeur de l'ennemie du type 1
- */
-#define ENEMY_T1_WIDTH 71 
+#define ENEMY_T4_WIDTH 25 
 
 
 /**
@@ -182,4 +172,14 @@
 
 #define TIME_RELOAD 300
 
+/**
+ * \brief Largeur du soldat accroupi
+*/
+#define SPEED_BONUS 1
+
+/**
+ * \brief Vitesse de la balle du joueur
+*/
+#define HEALTH_BONUS 5
+
 #endif
diff --git a/code/display.c b/code/display.c
index 4e13615ac115d47595a52d27626edcc006401ecd..8f78698deaa83326c71b8bf79e11b37031c70ef5 100644
--- a/code/display.c
+++ b/code/display.c
@@ -97,7 +97,7 @@ void refresh_graphics(SDL_Renderer *renderer, world_t *world,resources_t *resour
     {
         if(world->soldier.charger[i].sprite.is_visible == 1)
         {
-            SDL_RenderCopy(renderer, resources->bullet, NULL, &world->soldier.DestBullet[i]);
+            SDL_RenderCopy(renderer, resources->bullet, NULL, &world->soldier.charger[i].DestBullet);
         }
     }
 
@@ -125,11 +125,17 @@ void refresh_graphics(SDL_Renderer *renderer, world_t *world,resources_t *resour
     }
 
     if (world->supplying.plane.is_visible == 1){
-        load_texture_plane(resources, renderer, world);
+        if (world->supplying.sens == 0)
+        {
+            load_texture_plane_right(resources, renderer, world);
+        }else{
+            load_texture_plane_left(resources, renderer, world);
+        }
     }else{
         if (world->supplying.powerUP.sprite.is_visible == 1 && world->supplying.powerUP.type == 0){
             load_texture_powerUp_type0(resources, renderer, &world->supplying.powerUP);
-        }else{
+        }else if (world->supplying.powerUP.sprite.is_visible == 1 && world->supplying.powerUP.type == 1)
+        {
             load_texture_powerUp_type1(resources, renderer, &world->supplying.powerUP);
         }
     }
@@ -242,7 +248,8 @@ void init_ressources(SDL_Renderer *renderer, resources_t *resources, world_t *wo
 
     resources->powerUp[0] = charger_image_transparente("../resources/PowerUp_Vitesse.bmp", renderer, 255,0,255);
     resources->powerUp[1] = charger_image_transparente("../resources/PowerUp_Sante.bmp", renderer, 255,0,255);
-    resources->plane = charger_image_transparente("../resources/Plane.bmp", renderer, 255,0,255);
+    resources->plane[0] = charger_image_transparente("../resources/PlaneD.bmp", renderer, 255,0,255);
+    resources->plane[1] = charger_image_transparente("../resources/PlaneG.bmp", renderer, 255,0,255);
 
     resources->font = load_font("../resources/arial.ttf",14);
 
@@ -276,7 +283,8 @@ void destroy_textures(resources_t *resources, world_t *world)
     }
 
     SDL_DestroyTexture(resources->bullet);
-    SDL_DestroyTexture(resources->plane);
+    SDL_DestroyTexture(resources->plane[0]);
+    SDL_DestroyTexture(resources->plane[1]);
     SDL_DestroyTexture(resources->powerUp[0]);
     SDL_DestroyTexture(resources->powerUp[1]);
 
@@ -554,9 +562,13 @@ void load_texture_powerUp_type1(resources_t *resources, SDL_Renderer *renderer,
     SDL_RenderCopy(renderer, resources->powerUp[1], NULL, &powerUP->DestPowerUP);
 }
 
-void load_texture_plane(resources_t *resources, SDL_Renderer *renderer, world_t *world)
+void load_texture_plane_right(resources_t *resources, SDL_Renderer *renderer, world_t *world)
+{
+    SDL_RenderCopy(renderer, resources->plane[0], NULL, &world->supplying.DestPlane);
+}
+void load_texture_plane_left(resources_t *resources, SDL_Renderer *renderer, world_t *world)
 {
-    SDL_RenderCopy(renderer, resources->plane, NULL, &world->supplying.DestPlane);
+    SDL_RenderCopy(renderer, resources->plane[1], NULL, &world->supplying.DestPlane);
 }
 
 /**
diff --git a/code/display.h b/code/display.h
index f64b97f0eb2d1bba09e3711bf1c82d4363b9b5c4..97dbca2a6bbdb504130f427f4130aacdaff23bc8 100644
--- a/code/display.h
+++ b/code/display.h
@@ -34,7 +34,7 @@ struct resources_s
     SDL_Texture* enemyT3_run_left[10];
     SDL_Texture* enemyT3_run_right[10];
     SDL_Texture* powerUp[2];
-    SDL_Texture* plane;
+    SDL_Texture* plane[2];
     
     SDL_Texture* bullet; /*!< resources liée à l'image des balles. */
 
@@ -54,12 +54,6 @@ void refresh_graphics(SDL_Renderer *renderer, world_t *world,resources_t *resour
 
 void init_ressources(SDL_Renderer *renderer, resources_t *resources, world_t *world);
 
-//void init_enemies_ressources(SDL_Renderer *renderer, resources_t *resources, world_t *world);
-
-//void realloc_enemies_ressources(SDL_Renderer *renderer, resources_t *resources, world_t *world);
-
-//void clear_enemies_ressources(resources_t *resources,int nbEnemies);
-
 void destroy_textures(resources_t *resources, world_t *world);
 
 void rotate_right(SDL_Renderer *renderer, world_t *world,SDL_Texture* texture, int i);
@@ -86,15 +80,13 @@ void load_texture_crouch_right(resources_t *resources, SDL_Renderer *renderer, w
 
 void load_texture_jump_right(resources_t *resources, SDL_Renderer *renderer, world_t *world);
 
-//void load_texture_enemy(resources_t *resources, SDL_Renderer *renderer, world_t *world);
-
-//void load_texture_enemies(resources_t *resources, SDL_Renderer *renderer, world_t *world, int i);
-
 void load_texture_powerUp_type0(resources_t *resources, SDL_Renderer *renderer, powerUP_t *powerUP);
 
 void load_texture_powerUp_type1(resources_t *resources, SDL_Renderer *renderer, powerUP_t *powerUP);
 
-void load_texture_plane(resources_t *resources, SDL_Renderer *renderer, world_t *world);
+void load_texture_plane_left(resources_t *resources, SDL_Renderer *renderer, world_t *world);
+
+void load_texture_plane_right(resources_t *resources, SDL_Renderer *renderer, world_t *world);
 
 void init_ttf();
 
diff --git a/code/enemy.c b/code/enemy.c
index 002d3d951b45db0d93a9447c72734173d00dfa62..2522b55cd97d1c5a557e99d8245cfa654c2ac4ce 100644
--- a/code/enemy.c
+++ b/code/enemy.c
@@ -40,18 +40,18 @@ void init_enemyType1(enemy_t *enemy)
     int random = rand()%2+0;
     if (random == 1)
     {
-      init_sprite(&enemy->sprite, SCREEN_WIDTH+75, SCREEN_HEIGHT-ENEMY_T1_HEIGHT*2-20, ENEMY_T1_WIDTH, ENEMY_T1_HEIGHT, ENEMY_SPEED, 1);
+      init_sprite(&enemy->sprite, SCREEN_WIDTH+75, SCREEN_HEIGHT-ENEMY_HEIGHT*2-20, ENEMY_WIDTH, ENEMY_HEIGHT, ENEMY_SPEED, 1);
       enemy->direction = -1;
     }else{
-      init_sprite(&enemy->sprite, -75, SCREEN_HEIGHT-ENEMY_T1_HEIGHT*2-20, ENEMY_T1_WIDTH, ENEMY_T1_HEIGHT, ENEMY_SPEED, 1);
+      init_sprite(&enemy->sprite, -75, SCREEN_HEIGHT-ENEMY_HEIGHT*2-20, ENEMY_WIDTH, ENEMY_HEIGHT, ENEMY_SPEED, 1);
       enemy->direction = 1;
     }   
     enemy->type = 1;
     enemy->score = 1;
     enemy->DestEnemy.x = enemy->sprite.x;
     enemy->DestEnemy.y = enemy->sprite.y;
-    enemy->DestEnemy.w = ENEMY_T1_WIDTH;
-    enemy->DestEnemy.h = ENEMY_T1_HEIGHT;
+    enemy->DestEnemy.w = ENEMY_WIDTH;
+    enemy->DestEnemy.h = ENEMY_HEIGHT;
 }
 
 void init_enemyType2(enemy_t *enemy)
@@ -97,10 +97,10 @@ void init_enemyType4(enemy_t *enemy)
     int random = rand()%2+0;
     if (random == 1)
     {
-      init_sprite(&enemy->sprite, SCREEN_WIDTH+75, SCREEN_HEIGHT-ENEMY_T4_HEIGHT*2-40, ENEMY_T4_WIDTH, ENEMY_T4_HEIGHT, 1, 1);
+      init_sprite(&enemy->sprite, SCREEN_WIDTH+75, SCREEN_HEIGHT-ENEMY_T4_HEIGHT*2-70, ENEMY_T4_WIDTH, ENEMY_T4_HEIGHT, 1, 1);
       enemy->direction = -1;
     }else{
-      init_sprite(&enemy->sprite, -75, SCREEN_HEIGHT-ENEMY_T4_HEIGHT*2-40, ENEMY_T4_WIDTH, ENEMY_T4_HEIGHT,1, 1);
+      init_sprite(&enemy->sprite, -75, SCREEN_HEIGHT-ENEMY_T4_HEIGHT*2-70, ENEMY_T4_WIDTH, ENEMY_T4_HEIGHT,1, 1);
       enemy->direction = 1;
     }   
     enemy->type = 4;
diff --git a/code/powerUp.c b/code/powerUp.c
index 6278ea401eebc5154543a1f10589608665bb4d1c..87d98c36d20303c769effc20eff8e482c36e1ad6 100644
--- a/code/powerUp.c
+++ b/code/powerUp.c
@@ -81,10 +81,9 @@ void apply_effect(powerUP_t *powerUP,soldier_t *soldier,int drop){
     print_sprite(&soldier->sprite);
     if (powerUP->type == 0)
     {
-      soldier->sprite.v = soldier->sprite.v + 10;
+      soldier->sprite.v = soldier->sprite.v + SPEED_BONUS;
     }else{
-      soldier->sprite.hp = soldier->sprite.hp + 10;
-      print_sprite(&soldier->sprite);
+      soldier->sprite.hp = soldier->sprite.hp + HEALTH_BONUS;
     }   
     powerUP->apply_effect = 1;
   }
diff --git a/code/soldier.c b/code/soldier.c
index 551059468956bdcf1d1143db8dd274a4e0f342c9..f3281c6c3804325ca202fbd1deb2521e16255c5d 100644
--- a/code/soldier.c
+++ b/code/soldier.c
@@ -23,7 +23,6 @@ void init_soldier(soldier_t *soldier, int hp)
     soldier->DestSoldier.y = soldier->sprite.y;
     soldier->DestSoldier.w = SOLDIER_WIDTH;
     soldier->DestSoldier.h = SOLDIER_HEIGHT;
-    soldier->DestBullet = malloc(sizeof(SDL_Rect)*NB_BULLET);
     soldier->time_bullet = TIME_BULLET;
     init_bullet(soldier);
 }
@@ -44,10 +43,10 @@ void init_bullet(soldier_t *soldier)
       else if(soldier->direction == -1)
         soldier->charger[i].sens = 'g';
       
-      soldier->DestBullet[i].x = soldier->charger[i].sprite.x;
-      soldier->DestBullet[i].y = soldier->charger[i].sprite.y;
-      soldier->DestBullet[i].w = BULLET_WIDTH;
-      soldier->DestBullet[i].h = BULLET_HEIGTH;
+      soldier->charger[i].DestBullet.x = soldier->charger[i].sprite.x;
+      soldier->charger[i].DestBullet.y = soldier->charger[i].sprite.y;
+      soldier->charger[i].DestBullet.w = BULLET_WIDTH;
+      soldier->charger[i].DestBullet.h = BULLET_HEIGTH;
       soldier->time_reload = 0;
   	}
   	soldier->present_bullet = 0;
diff --git a/code/soldier.h b/code/soldier.h
index b8e8555b7cda3ba89d53d49068abfc444a11e5a3..f4e17f70fab2a99f101bdba461693447230c7715 100644
--- a/code/soldier.h
+++ b/code/soldier.h
@@ -10,6 +10,7 @@ struct bullet_s{
     sprite_t sprite;
     int shoot;
     char sens;
+    SDL_Rect DestBullet;
 };
 /**
  * \brief Type qui correspond au paramètre du soldat
@@ -36,7 +37,6 @@ struct soldier_s{
     int time_bullet;
     int time_reload;
     int present_bullet;
-    SDL_Rect *DestBullet;
 };
 /**
  * \brief Type qui correspond au paramètre du soldat
diff --git a/code/world_data.c b/code/world_data.c
index d70720e099ff86b37e954a5f5aa688df584fa69b..7441a98c2ad47e23d96f778471860201539eb95a 100644
--- a/code/world_data.c
+++ b/code/world_data.c
@@ -84,17 +84,8 @@ void init_data(world_t *world)
   
   init_supplying(&world->supplying,1);
   
-  //world->DestBullet = malloc(sizeof(SDL_Rect)*NB_BULLET);
-  
-  //Initialisation du chargeur
-  //&world->charger = (bullet_t*)malloc(NB_BULLET*sizeof(bullet_t));
-  //init_bullet(world);
-
-  //On n'est pas à la fin du jeu
   world->score = 0;
   world->gameover = 0;
-  //Score à 0
-  //world->score = 0; 
 }
 
 
@@ -119,7 +110,6 @@ void refresh_data(world_t *world)
         world->rounds.enemies[i].DestEnemy.y = world->rounds.enemies[i].sprite.y;
         //Si l'ennemi touche le soldat
         //enemy_touch_soldier(&world->rounds.enemies[i],&world->soldier,&world->score);
-        //enemy_touch_soldier(&world->rounds.enemies[i],&world->soldier);
         enemy_dead(&world->rounds.enemies[i],&world->soldier,&world->score);
       }
       soldier_touch_powerUP(&world->rounds.enemies[i].powerUP,&world->soldier);
@@ -130,8 +120,8 @@ void refresh_data(world_t *world)
   //Les balles
   for(int i = 0; i < NB_BULLET; i++)
   {
-      world->soldier.DestBullet[i].x = world->soldier.charger[i].sprite.x;
-      world->soldier.DestBullet[i].y = world->soldier.charger[i].sprite.y;
+      world->soldier.charger[i].DestBullet.x = world->soldier.charger[i].sprite.x;
+      world->soldier.charger[i].DestBullet.y = world->soldier.charger[i].sprite.y;
   }
       
   //Déplacements
@@ -157,12 +147,6 @@ void refresh_data(world_t *world)
   }
   plane_fly(&world->supplying);
 
-
-  /*enemy_walk(&world->enemy,&world->soldier);
-  world->enemy.DestEnemy.x = world->enemy.sprite.x;
-  world->enemy.DestEnemy.y = world->enemy.sprite.y;
-  enemy_dead(&world->enemy,&world->soldier);*/
-
   shootAfterE(&world->soldier);
 
   world->soldier.time_bullet++;
@@ -219,8 +203,6 @@ void handle_events(SDL_Event *event,world_t *world)
       //On indique la fin du jeu
       //Sauvegarde la partie
       save_game(world);
-      //Libère la mémoire du tableau DestBullet pour l'affichage
-      free(world->soldier.DestBullet);
       //Libère le tableau d'ennemis
       //clearEnemies(&world->rounds);
       free(world->rounds.enemies);
diff --git a/data/save.txt b/data/save.txt
index 271490f8c4468443ed53bd49274f8fd3014dfa8b..c71fe6aec29e5b5db833291b0aeeb161b8f0bdeb 100644
--- a/data/save.txt
+++ b/data/save.txt
@@ -1,10 +1,10 @@
 /Vie du joueur au début
-20
+15
 /Nombre d'ennemis au début
-26
+29
 /Nombre d'ennemis en plus à chaque manche
 1
 /Numéro de la manche
-38
+41
 /Meilleur score
-82
+99
diff --git a/resources/PlaneD.bmp b/resources/PlaneD.bmp
new file mode 100644
index 0000000000000000000000000000000000000000..8247f3c379bb8060b8f2b5ae2eb64975e7e05a2c
Binary files /dev/null and b/resources/PlaneD.bmp differ
diff --git a/resources/Plane.bmp b/resources/PlaneG.bmp
similarity index 100%
rename from resources/Plane.bmp
rename to resources/PlaneG.bmp