1 changed files with 0 additions and 92 deletions
@ -1,92 +0,0 @@ |
|||||
import math |
|
||||
|
|
||||
# Fonction pour calculer le nombre de réussites et de tentatives |
|
||||
def reussite(joueur, action, fichier='stats.txt'): |
|
||||
tentatives = 0 |
|
||||
reussites = 0 |
|
||||
print(f"Lecture du fichier pour {joueur} et action {action}") |
|
||||
with open(fichier, 'r') as f: |
|
||||
for ligne in f: |
|
||||
print(f"Ligne lue: {ligne.strip()}") |
|
||||
elements = ligne.strip().split() |
|
||||
if len(elements) >= 4 and elements[0] == joueur and action in elements[1]: |
|
||||
tentatives += 1 |
|
||||
if 'reussi' in elements[1]: |
|
||||
reussites += 1 |
|
||||
print(f"Résultats: {reussites} réussites sur {tentatives} tentatives") |
|
||||
return reussites, tentatives |
|
||||
|
|
||||
# Fonction pour déterminer si le point est dans le demi-cercle (2 ou 3 points) sans utiliser sqrt |
|
||||
def points(x, y): |
|
||||
print(f"Calcul des points pour le tir aux coordonnées ({x}, {y})") |
|
||||
distanceA2 = (x - 0) ** 2 + (y - 300) ** 2 |
|
||||
distanceB2 = (x - 1000) ** 2 + (y - 300) ** 2 |
|
||||
print(f"Distances au carré : {distanceA2} (A) et {distanceB2} (B)") |
|
||||
if distanceA2 <= 300 ** 2 or distanceB2 <= 300 ** 2: |
|
||||
print("-> Tir à 2 points") |
|
||||
return 2 |
|
||||
print("-> Tir à 3 points") |
|
||||
return 3 |
|
||||
|
|
||||
# Fonction pour calculer le total des points d'un joueur |
|
||||
def totalPoints(joueur, fichier='stats.txt'): |
|
||||
total = 0 |
|
||||
print(f"Calcul du total des points pour {joueur}") |
|
||||
with open(fichier, 'r') as f: |
|
||||
for ligne in f: |
|
||||
elements = ligne.strip().split() |
|
||||
if len(elements) >= 4 and elements[0] == joueur and 'tir-reussi' in elements[1]: |
|
||||
x, y = int(elements[2]), int(elements[3]) |
|
||||
total += points(x, y) |
|
||||
elif len(elements) >= 4 and elements[0] == joueur and 'lancer-reu' in elements[1]: |
|
||||
total += 1 |
|
||||
print(f"Total des points pour {joueur} : {total}") |
|
||||
return total |
|
||||
|
|
||||
# Fonction pour compter les rebonds et les passes |
|
||||
def rebondsPasses(joueur, fichier='stats.txt'): |
|
||||
rebonds = 0 |
|
||||
passes = 0 |
|
||||
print(f"Calcul des rebonds et passes pour {joueur}") |
|
||||
with open(fichier, 'r') as f: |
|
||||
for ligne in f: |
|
||||
elements = ligne.strip().split() |
|
||||
if len(elements) >= 2 and elements[0] == joueur: |
|
||||
if 'rebond' in elements[1]: |
|
||||
rebonds += 1 |
|
||||
if 'passe' in elements[1]: |
|
||||
passes += 1 |
|
||||
print(f"Rebonds: {rebonds}, Passes: {passes}") |
|
||||
return rebonds, passes |
|
||||
|
|
||||
# Fonction pour compter les actions manquées |
|
||||
def manque(joueur, fichier='stats.txt'): |
|
||||
manques = 0 |
|
||||
print(f"Calcul des actions manquées pour {joueur}") |
|
||||
with open(fichier, 'r') as f: |
|
||||
for ligne in f: |
|
||||
elements = ligne.strip().split() |
|
||||
if len(elements) >= 2 and elements[0] == joueur and ('tir-manque' in elements[1] or 'perteBalle' in elements[1]): |
|
||||
manques += 1 |
|
||||
print(f"Total des actions manquées : {manques}") |
|
||||
return manques |
|
||||
|
|
||||
# Fonction pour afficher les statistiques d'un joueur |
|
||||
def afficheStats(joueur, fichier='stats.txt'): |
|
||||
print(f"\n*** Affichage des statistiques pour {joueur} ***") |
|
||||
points = totalPoints(joueur, fichier) |
|
||||
reussites, tentatives = reussite(joueur, 'tir', fichier) |
|
||||
rebonds, passes = rebondsPasses(joueur, fichier) |
|
||||
manques_total = manque(joueur, fichier) |
|
||||
pourcentage_reussite = (reussites / tentatives * 100) if tentatives > 0 else 0 |
|
||||
|
|
||||
print(f"- Points marqués : {points}") |
|
||||
print(f"- Pourcentage de réussite aux tirs : {pourcentage_reussite:.2f}%") |
|
||||
print(f"- Nombre de rebonds : {rebonds}") |
|
||||
print(f"- Nombre de passes : {passes}") |
|
||||
print(f"- Actions manquées (y compris pertes de balle) : {manques_total}") |
|
||||
|
|
||||
# Exemple d'utilisation |
|
||||
# afficheStats('J4') |
|
||||
afficheStats('J4') |
|
||||
|
|
Loading…
Reference in new issue