diff --git a/travail_de_groupe/jeu_appren_par_renfo/src/ball.c b/travail_de_groupe/jeu_appren_par_renfo/src/ball.c
index 4de5849e2c5c1fbf890b1372003632e90f2f4e30..7265fef9e59b88696747a00ae14aa660892d31e8 100644
--- a/travail_de_groupe/jeu_appren_par_renfo/src/ball.c
+++ b/travail_de_groupe/jeu_appren_par_renfo/src/ball.c
@@ -5,8 +5,8 @@ int trajectoireAntoine[NUMBERPOINT_TRAJEC][2];
 
 void initBall()
 {
-    ball.x = 5 * BLOCK_SIZE;
-    ball.y = 5 * BLOCK_SIZE;
+    ball.x = (rand()%(MAP_WIDTH/2)) * BLOCK_SIZE;
+    ball.y = (rand()% (MAP_HEIGHT)) * BLOCK_SIZE;
     ball.z = player.h / BLOCK_SIZE;
     ball.h = 0.5 * BLOCK_SIZE;
     ball.w = 0.5 * BLOCK_SIZE;
diff --git a/travail_de_groupe/jeu_appren_par_renfo/src/ennemy.c b/travail_de_groupe/jeu_appren_par_renfo/src/ennemy.c
index a44030c15c8406b19c363524eb36be5b2e76f271..c38f48a6b008cce2899fd92384eb96ea1791fd65 100644
--- a/travail_de_groupe/jeu_appren_par_renfo/src/ennemy.c
+++ b/travail_de_groupe/jeu_appren_par_renfo/src/ennemy.c
@@ -25,7 +25,7 @@ void manageEnnemyMovement()
         angleH = converterIntoAngleH(angleH);
         ennemyZone = convertIntoZone(ennemy.x, ennemy.y);
         canonZone = convertIntoZone(lastHitPoint[0], lastHitPoint[1]);
-        action = takeAction(ennemy.x, ennemy.y, Q, canonZone, angleH, angleF, 0);
+        action = takeAction(ennemy.x, ennemy.y, Q, canonZone, angleH, angleF, 1);
         switch (action)
         {
             case BACK:
diff --git a/travail_de_groupe/jeu_appren_par_renfo/src/gest_event.c b/travail_de_groupe/jeu_appren_par_renfo/src/gest_event.c
index e5299afa87faae35dcc1eb97927c6f1d1d686861..abe4bb24cb8d7a997907400f60c10a86c26f6f46 100644
--- a/travail_de_groupe/jeu_appren_par_renfo/src/gest_event.c
+++ b/travail_de_groupe/jeu_appren_par_renfo/src/gest_event.c
@@ -115,6 +115,11 @@ void gestGame()
                     showHub = 0;
                 }
 
+            case SDLK_b:
+                initBall();
+                landingPointIsFind = 0;
+                continue;
+
             default:
                 break;
             }
diff --git a/travail_de_groupe/jeu_appren_par_renfo/src/main.c b/travail_de_groupe/jeu_appren_par_renfo/src/main.c
index 9d3ea373106b43bf93425a4c4ad326df9adc02d0..dfd8219e89f6e2e74d200906d7e5242ae54b5a2a 100644
--- a/travail_de_groupe/jeu_appren_par_renfo/src/main.c
+++ b/travail_de_groupe/jeu_appren_par_renfo/src/main.c
@@ -5,6 +5,7 @@ int game_state;
 float ***** Q;
 int main()
 {
+    srand(time(NULL));
     Q = allocateAndInitiateQ();
     readQFromFile(Q);
     running = 1;
diff --git a/travail_de_groupe/jeu_appren_par_renfo/src/player.c b/travail_de_groupe/jeu_appren_par_renfo/src/player.c
index 38c4aaef56752fa8cdef19b3163d9ea8dac7fa0a..c18a07fa48419fd67bdf5cad0a6354267062bad4 100644
--- a/travail_de_groupe/jeu_appren_par_renfo/src/player.c
+++ b/travail_de_groupe/jeu_appren_par_renfo/src/player.c
@@ -33,7 +33,6 @@ void initPlayer()
 int *generateLandingPoint(int rxWall)
 {
     int *landingPoint = malloc(sizeof(int) * 2);
-    srand(time(NULL));
 
     int randomPointX = MAP_WIDTH / 2 + 1 + rand() % (rxWall / BLOCK_SIZE - (MAP_WIDTH / 2));
     int randomPointY = -1;