diff --git a/import math.py b/import math.py new file mode 100644 index 0000000..902726b --- /dev/null +++ b/import math.py @@ -0,0 +1,92 @@ +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') +