You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

105 lines
2.9 KiB

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)