diff --git a/travail_de_groupe/jeu_appren_par_renfo/src/render.c b/travail_de_groupe/jeu_appren_par_renfo/src/render.c
index 3953a8f602e8649ae9397c59c37114296fe0d9a3..278bd3f09be9e700ba8aa8fb5990c023e26f7437 100644
--- a/travail_de_groupe/jeu_appren_par_renfo/src/render.c
+++ b/travail_de_groupe/jeu_appren_par_renfo/src/render.c
@@ -430,6 +430,22 @@ void drawEnnemy(){
     float scaledEnnemyWidth = ennemyBaseWidth / sqrt(3);
     int ennemyWidth = 50;
     int ennemyHeight = 200;
+    float angleMin = player.angle - (FOV_ANGLE * DR)/2;
+    //if (angleMin > 2*pi) angleMin -= 2*pi;
+    float angleMax = player.angle + (FOV_ANGLE * DR)/2;
+    //if (angleMax < 0) angleMax += 2*pi;
+    if (angleMin < 0){
+        angleMin += 2*pi;
+        angleMax += 2*pi;
+    }
+    if (angleMax > 2*pi){
+        angleMax -= 2*pi;
+        angleMin -= 2*pi;
+        //ballAngle -= 2*pi;
+    }
+    if (angleMax > 0 && angleMin > 0 && ennemyAngle < 0){
+        ennemyAngle += 2*pi;
+    }
 
     //printf("%f %f\n", ennemyAngle, player.angle - (FOV_ANGLE)/2 * DR);
     //printf("%f\n", player.angle * RD);
@@ -451,7 +467,7 @@ void drawEnnemy(){
         if (angleSum > 2*pi) angleSum -= 2*pi;
         if (angleSum < 0) angleSum += 2*pi;
 
-        printf("sum: %f\n", angleSum * RD);
+        //printf("sum: %f\n", angleSum * RD);
 
         if (angleSum > 5*pi/3 && angleSum <= pi/3){
             destRect.x = 2 * destRect.w;
@@ -470,10 +486,15 @@ void drawEnnemy(){
     }
 }
 
+int isAngleInRange(float angle, float min, float max){
+
+    return ((angle >= min && angle <= max)) || ((angle >= max && angle <= min));
+}
+
 void drawBall(){
-    float ballAngle = atan2((ball.y + ball.w/2)  - (player.y + player.w/2) , (ball.x + ball.w/2) - (player.x + player.w/2));
-    if (ballAngle < 0) ballAngle += 2*pi;
-    if (ballAngle > 2*pi) ballAngle -= 2*pi;
+    float ballAngle = atan2(ball.y  - player.y, ball.x  - player.x);
+    //if (ballAngle < 0) ballAngle += 2*pi;
+    //if (ballAngle > 2*pi) ballAngle -= 2*pi;
     float ballDistance = sqrt((ball.x - player.x)*(ball.x - player.x) + (ball.y - player.y)*(ball.y - player.y)) * BLOCK_SIZE;
     float ballBaseWidth = BLOCK_SIZE/2;
     float ballDistanceX = ballDistance * cos(ballAngle - player.angle) * BLOCK_SIZE;
@@ -481,13 +502,28 @@ void drawBall(){
     float scaledBallWidth = ballBaseWidth / sqrt(3);
     int ballWidth = 25;
     int ballHeight = 25;
-    float angleMin = player.angle - (FOV_ANGLE)/2 * DR;
-
-    float angleMax = player.angle + (FOV_ANGLE)/2 * DR;
-
+    float angleMin = player.angle - (FOV_ANGLE * DR)/2;
+    //if (angleMin > 2*pi) angleMin -= 2*pi;
+    float angleMax = player.angle + (FOV_ANGLE * DR)/2;
+    //if (angleMax < 0) angleMax += 2*pi;
+    if (angleMin < 0){
+        angleMin += 2*pi;
+        angleMax += 2*pi;
+    }
+    if (angleMax > 2*pi){
+        angleMax -= 2*pi;
+        angleMin -= 2*pi;
+        //ballAngle -= 2*pi;
+    }
+    if (angleMax > 0 && angleMin > 0 && ballAngle < 0){
+        ballAngle += 2*pi;
+    }
+        
 
-    printf("ball angle: %f player angle: %f\n", ballAngle * RD, player.angle * RD);
-    printf("limit angles: %f %f\n", angleMin, angleMax);
+    //if (angleMax > 2*pi) angleMax -= 2*pi;
+    //printf("is playing in range %d\n", isAngleInRange(ballAngle, angleMin, angleMax));
+    //printf("ball angle: %f player angle: %f\n", ballAngle * RD, player.angle * RD);
+    //printf("limit angles: %f %f\n", angleMin * RD, angleMax * RD);
     if (ballAngle >= angleMin && ballAngle <= angleMax){
         rect.x = screenDimension.w/2 + (screenDimension.w * tan(ballAngle - player.angle)) * sqrt(3) * 0.5;
         rect.w = (ballWidth * screenDimension.w) / (ballDistance/BLOCK_SIZE);