Meilleur bot lorsqu'il y a plusieurs balles (#31)

Reviewed-on: #31
Reviewed-by: Corentin <solois.corentin@gmail.com>
Co-authored-by: Tipragot <contact@tipragot.fr>
Co-committed-by: Tipragot <contact@tipragot.fr>
This commit is contained in:
Tipragot 2024-01-07 12:51:58 +00:00 committed by Corentin
parent b73b4a6de4
commit 5c0073809f

View file

@ -528,10 +528,15 @@ def _update_bot(world: World):
Fonction qui update les mouvement du bot Fonction qui update les mouvement du bot
""" """
# On récupère la balle la plus proche du bot # On récupère la balle la plus proche du bot
ball_query = world.query(Position, Velocity, CollisionHandler) balls = world.query(Position, Velocity, CollisionHandler)
if ball_query == set(): if balls == set():
return None return None
ball = max(ball_query, key=lambda entity: entity[Position].y) right_balls = [ball for ball in balls if ball[Velocity].x > 0]
left_balls = [ball for ball in balls if ball[Velocity].x < 0]
if len(right_balls) != 0:
ball = max(right_balls, key=lambda entity: entity[Position].x)
else:
ball = min(left_balls, key=lambda entity: entity[Position].x)
# On récupère le bot et le joueur # On récupère le bot et le joueur
bot = world.query(Player2).pop() bot = world.query(Player2).pop()