diff --git a/pong/server.js b/pong/server.js
index 209c350c56e7c8dcf4a689071aa4c06369853824..73fe13605ab1976e9a32ebbd33e5aa6a3caa4ccc 100644
--- a/pong/server.js
+++ b/pong/server.js
@@ -148,7 +148,10 @@ setInterval(() => {
 							ball.y - ball.r + ball.vy <= player.y + player.h &&
 							ball.y - ball.r + ball.vy > player.y)
 					) {
-						ball.a = 360 - ball.a;
+						let variation =
+							(ball.x - player.w / 2 - player.x) *
+							(30 / player.w);
+						ball.a = 360 - ball.a + variation;
 					}
 				}
 			}
@@ -166,7 +169,10 @@ setInterval(() => {
 							ball.x - ball.r + ball.vx <= player.x + player.w &&
 							ball.x - ball.r + ball.vx > player.x)
 					) {
-						ball.a = 180 - ball.a;
+						let variation =
+							(ball.y - player.h / 2 - player.y) *
+							(30 / player.h);
+						ball.a = 180 - ball.a + variation;
 					}
 				}
 			}