with open("stats.txt", "r") as fichier: lignes = fichier.readlines() actions = [] for ligne in lignes: parts = ligne.strip().split() if len(parts) >= 2: actions.append(parts) def reussite(joueur, action_type): """Renvoie le nombre de tentatives et de réussites pour un joueur et une action""" tentatives = 0 reussites = 0 for a in actions: if a[0] != joueur: continue if action_type == "tir" and a[1] in ["tir-reussi", "tir-manque"]: tentatives += 1 if a[1] == "tir-reussi": reussites += 1 if action_type == "lancer" and a[1] in ["lancer-reu", "lancer-rat"]: tentatives += 1 if a[1] == "lancer-reu": reussites += 1 return tentatives, reussites def points(x, y): """Renvoie 2 ou 3 points selon la distance au panier""" distance = ((x - 0)**2 + (y - 300)**2) ** 0.5 if distance <= 225: return 2 else: return 3 def totalPoints(joueur): """Renvoie le nombre total de points marqués par un joueur""" total = 0 for a in actions: if a[0] != joueur: continue if a[1] == "tir-reussi": total += points(int(a[2]), int(a[3])) elif a[1] == "lancer-reu": total += 1 return total def rebondsPasses(joueur): """Renvoie le nombre de rebonds et de passes d'un joueur""" rebonds = 0 passes = 0 for a in actions: if a[0] != joueur: continue if "rebond" in a[1]: rebonds += 1 elif a[1] == "passe": passes += 1 return rebonds, passes def manque(joueur): """Renvoie le nombre d'actions manquées (tir raté, lancer raté, perte de balle)""" rate = 0 for a in actions: if a[0] != joueur: continue if a[1] in ["tir-manque", "lancer-rat", "perteBalle"]: rate += 1 return rate def afficheStats(joueur): """Affiche toutes les statistiques d'un joueur""" tirs = reussite(joueur, "tir") lancers = reussite(joueur, "lancer") points_total = totalPoints(joueur) reb_pass = rebondsPasses(joueur) erreurs = manque(joueur) print("Statistiques de", joueur) print("-----------------------") print("Points :", points_total) if tirs[0] > 0: print("Réussite tirs :", round((tirs[1]/tirs[0])*100, 2), "%") if lancers[0] > 0: print("Réussite lancers :", round((lancers[1]/lancers[0])*100, 2), "%") print("Rebonds :", reb_pass[0]) print("Passes :", reb_pass[1]) print("Actions manquées :", erreurs) print() joueurs = ["J1","J2","J3","J4","J5","J6","J7","J8","J9","J10", "J1V","J2V","J3V","J4V","J5V","J6V","J7V","J8V","J9V","J10V"] for j in joueurs: afficheStats(j)