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
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)
|