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.
88 lines
3.3 KiB
88 lines
3.3 KiB
from math import sqrt
|
|
def reussite (joueur,action):
|
|
"""Prend en valeur un nom de joueur et une action et donne
|
|
(<actions_prises_par_le_joueur>,<actions_reussies_de_ce_joueur>)"""
|
|
actions_reussies = 0
|
|
actions_prises = 0
|
|
with open("stats.txt",'r') as fichier_stat:
|
|
for ligne in fichier_stat:
|
|
ligne_separe = ligne.split(" ")
|
|
if ligne_separe[0] == joueur and action in ligne_separe[1]:
|
|
actions_prises += 1
|
|
if 'reussi' in ligne_separe[1]:
|
|
actions_reussies += 1
|
|
return actions_prises,actions_reussies
|
|
|
|
def points (x,y):
|
|
"""la fonction doit prendre en paramètres x et y
|
|
les coords du point d'action et doit renvoyer 2 ou 3 en fonction du point de tir"""
|
|
if x - 500<0:
|
|
distance = sqrt((y-300)**2+x**2)
|
|
else:
|
|
distance = sqrt((y-300)**2+(x-00)**2)
|
|
if distance<=250:
|
|
return 2
|
|
else :
|
|
return 3
|
|
|
|
def totalPoints(joueur):
|
|
"""Utilise la fonction 'points()' pour calculer les points
|
|
d'un joueur donné."""
|
|
totpoints=0
|
|
x=0
|
|
y=0
|
|
with open('stats.txt','r') as fichier_stat:
|
|
for ligne in fichier_stat:
|
|
ligne_separe = ligne.split(" ")
|
|
if ligne_separe[0]==joueur and ligne_separe[1]== 'tir-reussi':
|
|
ligne_separe[2]= x
|
|
ligne_separe[3]= y
|
|
totpoints=totpoints+points(x,y)
|
|
return totpoints
|
|
|
|
|
|
def rebondsPasses(joueur):
|
|
"""Prend en paramètre un nom de joueur et donne (<nombre_de_rebonds>,
|
|
<nombre_de_passes>)"""
|
|
nombre_de_rebonds = 0
|
|
nombre_de_passes = 0
|
|
with open('stats.txt','r') as fichier_stat:
|
|
for ligne in fichier_stat:
|
|
ligne_separe = ligne.split(" ")
|
|
if ligne_separe[0] == joueur:
|
|
if 'rebond' in ligne_separe[1]:
|
|
nombre_de_rebonds += 1
|
|
elif 'passe' in ligne_separe[1]:
|
|
nombre_de_passes += 1
|
|
return nombre_de_rebonds,nombre_de_passes
|
|
|
|
def manque(joueur):
|
|
"""Prend un nom de joueur et retourne le nombre d'actions manquées et
|
|
de pertes de balle par le joueur."""
|
|
nombre_de_rates_et_pertes = 0
|
|
with open('stats.txt','r') as fichier_stat:
|
|
for ligne in fichier_stat:
|
|
ligne_separe = ligne.split(" ")
|
|
if ligne_separe[0] == joueur:
|
|
if 'manque' in ligne_separe[1] or 'perteBalle' in ligne_separe[1]:
|
|
nombre_de_rates_et_pertes += 1
|
|
return nombre_de_rates_et_pertes
|
|
|
|
|
|
|
|
def afficheStats(joueur):
|
|
"""diff stats points marqués, pourcentage de reussite etc"""
|
|
pourcent_reussite = round(reussite(joueur,'tir')[1]/reussite(joueur,'tir')[0]*100,1)
|
|
print("Le joueur", joueur, "a réussi", pourcent_reussite, "% de ses tirs, a marqué",
|
|
totalPoints(joueur), "points, a fait", rebondsPasses(joueur)[0], "rebonds,",
|
|
rebondsPasses(joueur)[1], "passes et manqué", manque(joueur), "tirs")
|
|
|
|
#TESTS :
|
|
print('Le joueur 1 a tiré et réussi', reussite('J1','tir'))
|
|
print('le joueur 1 a fait ce nombre de rebonds et passes',rebondsPasses('J1'))
|
|
print('Le joueur 1 a raté et perdu la balle',manque('J1'),'fois')
|
|
print(points(500,300))#censé etre 3 points
|
|
print(points(150,300))#censé etre 2 points
|
|
print(points(900,100))#censé etre 2 points
|
|
print(totalPoints('J1'))
|
|
|
|
|