|
|
|
"""
|
|
|
|
Dans `reussite`, oubli des lancers francs pour lesquels l'action est "reu" et pas "reussi".
|
|
|
|
Dans `totalPoints` :
|
|
|
|
lancers francs non pris en compte
|
|
|
|
tirs ratés comptés comme réussis.
|
|
|
|
Note : 16
|
|
|
|
"""
|
|
|
|
|
|
|
|
def reussite(joueur, action):
|
|
|
|
"""Prend deux chaînes de caractères :
|
|
|
|
- joueur (le nom du joueur),
|
|
|
|
- action (le type d’action : tir ou lancer).
|
|
|
|
Renvoie deux entiers :
|
|
|
|
- le nombre de tentatives
|
|
|
|
- le nombre de réussit sur l’action en question """
|
|
|
|
with open('stats.txt', 'r') as stats:
|
|
|
|
stats = stats.readlines()
|
|
|
|
nb_action = 0
|
|
|
|
nb_reussite_action = 0
|
|
|
|
for ligne in stats:
|
|
|
|
ligne = ligne.strip().split(' ')
|
|
|
|
if ligne[0] == joueur and ligne[1].split('-')[0] == action:
|
|
|
|
nb_action += 1
|
|
|
|
if ligne[0] == joueur and ligne[1].split('-')[1] == "reussi":
|
|
|
|
nb_reussite_action += 1
|
|
|
|
return nb_action, nb_reussite_action
|
|
|
|
|
|
|
|
def points(x, y):
|
|
|
|
"""Prend deux entiers x et y (les coordonnées du point où a eu lieu l’action).
|
|
|
|
Renvoie un entier:
|
|
|
|
- 2 si le point est à l’intérieur d’un des demi-cercles
|
|
|
|
- 3 sinon"""
|
|
|
|
if x**2+(y-300)**2 <= 62500 or (x-1000)**2+(y-300)**2 <= 62500:
|
|
|
|
return 2
|
|
|
|
else:
|
|
|
|
return 3
|
|
|
|
|
|
|
|
def totalPoints(joueur):
|
|
|
|
"""Prend une chaîne de caractère joueur (le nom du joueur)
|
|
|
|
Renvoie le nombre total de points marqués par ce joueur."""
|
|
|
|
with open('stats.txt', 'r') as stats:
|
|
|
|
nb_total_points = 0
|
|
|
|
for ligne in stats:
|
|
|
|
ligne = ligne.strip().split(' ')
|
|
|
|
if ligne[0] == joueur:
|
|
|
|
coord_x, coord_y = int(ligne[2]), int(ligne[3])
|
|
|
|
nb_total_points += points(coord_x, coord_y)
|
|
|
|
return nb_total_points
|