From 64facca14c8b6e5bc8811e11c72fb8e9f3dc4b75 Mon Sep 17 00:00:00 2001 From: camille <> Date: Tue, 17 Mar 2026 10:34:25 +0100 Subject: [PATCH] ajout --- projet_basket.py | 105 +++++++++++++++++++++++++ stats.txt | 197 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 302 insertions(+) create mode 100644 projet_basket.py create mode 100644 stats.txt diff --git a/projet_basket.py b/projet_basket.py new file mode 100644 index 0000000..17b5487 --- /dev/null +++ b/projet_basket.py @@ -0,0 +1,105 @@ +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) \ No newline at end of file diff --git a/stats.txt b/stats.txt new file mode 100644 index 0000000..c2f21a8 --- /dev/null +++ b/stats.txt @@ -0,0 +1,197 @@ +J4V tir-reussi 928 258 +J1 tir-manque 79 242 +J2V rebondDef 75 300 +J8V tir-reussi 981 319 +J10V lancer-rat 818 293 +J10V lancer-reu 817 296 +J8 tir-manque 52 157 +J4 passe 200 150 +J1 tir-reussi 68 288 +J10V tir-manque 973 427 +J8 tir-manque 80 309 +J1 rebondOff 150 310 +J8V tir-reussi 908 116 +J1 tir-reussi 22 397 +J10V tir-manque 838 425 +J5 tir-manque 44 316 +J4 perteBalle 150 250 +J10V tir-reussi 977 323 +J8V passe 750 250 +J10V tir-reussi 894 299 +J7 tir-manque 155 154 +J8V rebondDef 100 320 +J2V tir-reussi 928 330 +J2 tir-manque 20 330 +J4 rebondOff 100 280 +J8V tir-reussi 975 317 +J8 tir-reussi 42 312 +J8V tir-reussi 971 307 +J3 perteBalle 520 100 +J8V tir-reussi 971 307 +J2 tir-reussi 45 265 +J2 tir-manque 37 261 +J1V rebondDef 100 360 +J10V tir-manque 926 280 +J10V rebondOff 900 300 +J10V tir-manque 958 333 +J3 rebondDef 900 285 +J2 tir-reussi 58 266 +J10V lancer-rat 819 300 +J10V lancer-reu 819 303 +J8V tir-manque 899 260 +J8V rebondOff 900 280 +J8V tir-reussi 974 254 +J10V lancer-rat 816 300 +J10V lancer-rat 815 297 +J5 tir-manque 111 108 +J1 passe 50 280 +J2 tir-reussi 77 259 +J10V tir-reussi 938 557 +J2 tir-manque 100 253 +J3V perteBalle 450 200 +J2 tir-manque 60 76 +J8 tir-manque 37 328 +J1 tir-manque 96 258 +J1 lancer-reu 187 306 +J1 lancer-rat 190 303 +J8 tir-reussi 57 270 +J8 lancer-rat 183 297 +J7V tir-manque 976 323 +J3 rebondOff 897 275 +J8 tir-manque 19 302 +J8V lancer-rat 815 294 +J8V lancer-rat 816 304 +J8 tir-reussi 63 286 +J1 tir-manque 69 244 +J8 tir-reussi 35 273 +J4V tir-manque 814 158 +J8 tir-manque 74 281 +J9 tir-reussi 78 280 +J8V tir-reussi 945 366 +J10V tir-reussi 942 335 +J10V tir-manque 962 318 +J9 tir-manque 55 460 +J2 tir-reussi 63 310 +J6V lancer-reu 817 301 +J6V lancer-rat 815 307 +J2 tir-reussi 42 260 +J6V tir-manque 884 292 +J6V tir-manque 919 282 +J3V lancer-rat 815 300 +J3V lancer-rat 817 294 +J5 tir-manque 78 92 +J9 tir-manque 34 290 +J2V tir-reussi 959 322 +J5 tir-manque 105 242 +J4 rebondOff 50 380 +J5 tir-manque 43 492 +J9 tir-reussi 67 255 +J2 lancer-reu 185 301 +J2 lancer-rat 189 297 +J2 passe 239 260 +J9 tir-reussi 41 263 +J6 tir-manque 80 294 +J10V tir-manque 938 321 +J7 tir-manque 176 183 +J7 tir-manque 41 79 +J10V lancer-rat 817 299 +J10V lancer-rat 818 300 +J2 tir-manque 223 179 +J10V tir-reussi 955 306 +J2 tir-reussi 974 269 +J4V lancer-rat 184 298 +J4V lancer-reu 185 290 +J5 tir-manque 923 303 +J3V rebondDef 900 330 +J10V tir-reussi 68 261 +J5 tir-manque 973 421 +J1 tir-reussi 848 183 +J10V tir-manque 188 220 +J8V tir-manque 53 264 +J2 tir-reussi 974 261 +J2 tir-manque 971 301 +J8V tir-manque 59 249 +J1 passe 800 220 +J2 tir-reussi 967 309 +J6V tir-reussi 59 254 +J2 tir-manque 926 305 +J10V tir-manque 69 254 +J3V tir-reussi 84 265 +J2 tir-reussi 749 378 +J5 tir-manque 905 261 +J8V rebondDef 880 331 +J10V tir-reussi 51 294 +J1 tir-manque 894 171 +J10V tir-reussi 59 258 +J1 tir-manque 961 183 +J1 rebondOff 920 300 +J7V tir-manque 59 326 +J2 tir-reussi 970 321 +J2 tir-manque 953 324 +J1 rebondOff 897 230 +J2 tir-reussi 967 318 +J10V tir-reussi 77 274 +J7 tir-manque 982 314 +J10V rebondDef 900 286 +J3V tir-reussi 51 249 +J3V lancer-rat 184 300 +J10V tir-reussi 53 255 +J7 tir-manque 974 326 +J4V perteBalle 750 423 +J1 tir-reussi 957 196 +J3V perteBalle 223 398 +J2 tir-reussi 977 256 +J5V tir-reussi 181 229 +J3V tir-reussi 135 438 +J7 tir-manque 919 262 +J8 tir-reussi 931 269 +J10V tir-reussi 82 258 +J1 tir-reussi 859 387 +J3V tir-reussi 114 247 +J1 tir-manque 893 66 +J4V lancer-reu 183 295 +J4V lancer-rat 185 294 +J1 tir-manque 884 46 +J2V perteBalle 280 420 +J8 tir-manque 972 267 +J8 rebondOff 980 310 +J8 tir-manque 952 312 +J2V rebondDef 900 284 +J9 tir-manque 936 292 +J4V tir-manque 43 270 +J7 tir-manque 810 299 +J1 passe 720 336 +J8 tir-reussi 928 292 +J8 lancer-rat 817 298 +J2 lancer-reu 815 297 +J2 lancer-rat 816 290 +J1 tir-reussi 829 201 +J10V tir-reussi 29 314 +J8 tir-reussi 937 252 +J5 tir-manque 956 259 +J1 rebondOff 900 317 +J9 tir-manque 947 265 +J9 lancer-rat 816 300 +J9 lancer-rat 819 302 +J8V tir-reussi 37 303 +J7 tir-reussi 929 265 +J7 tir-manque 871 172 +J2 rebondOff 920 286 +J9 tir-manque 963 261 +J10V tir-reussi 178 114 +J5 tir-manque 861 150 +J8V tir-reussi 49 423 +J1 lancer-rat 818 302 +J1 lancer-rat 817 297 +J9 lancer-rat 814 299 +J9 lancer-rat 818 301 +J9 tir-manque 941 306 +J10V rebondDef 920 282 +J10V lancer-reu 183 298 +J10V lancer-rat 182 300 +J5 tir-reussi 956 242 +J10V tir-reussi 28 326 +J10V tir-reussi 64 258 +J1 tir-manque 783 444 +J3V tir-manque 44 317 +J10V tir-reussi 61 278