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.

93 lines
3.8 KiB

### les fonctions n'ont pas de documentation
### la fonction affichestats n'est pas très explicite et n'affiche pas tous les éléments
### pourquoi mettre un print(affichestats()) au lieu de lancer la fonction simplement?
### il serait bien de pourvoir choisir le joueur
### note : 16
#définition de la fonction
def reussite (joueur, action):
#établissement des variables
tentatives = 0
réussites = 0
#en ouvrant le fichier stats la commande va cherche une ligne avec le nom du joueur l'action et ajouter + 1 ) la variable tentatives chaque fois qu'elle la trouve puis regarder si le mot reussi est sur la même ligne si c'est le cas elle ajoutera + 1 à la variable réussite
with open("stats.txt", "r") as fichier:
for ligne in fichier:
if joueur.upper() + " " in ligne and action in ligne:
tentatives += 1
if "tir-reussi" in ligne or "lancer-reu" in ligne:
réussites += 1
return tentatives, réussites,
#print(reussite("j4v", "tir"))
def points (x, y):
#les coordonnées du centre gauche et droit et le rayon du cercle
centre_gauche = (0, 300)
centre_droit = (1000, 300)
rayon = 250
#on vérifie si le point est dans le cercle gauche ou droit
dans_gauche = (x - centre_gauche[0])**2 + (y - centre_gauche[1])**2 <= rayon**2 and x <= 0 + rayon
dans_droit = (x - centre_droit[0])**2 + (y - centre_droit[1])**2 <= rayon**2 and x >= 1000 - rayon
#si c'est le cas on revoie 2 sinon on renvoie 3
if dans_gauche or dans_droit:
return 2
else:
return 3
#print(points(250, 300))
def totalpoints (joueur):
#on établie la variable des points totaux
total_points = 0
with open("stats.txt", "r") as fichier:
for ligne in fichier:
element = ligne.split()
#on regarde dans chaque ligne si le nom du joueur choisit y est
if joueur.upper() + " " in ligne:
#si le nom est suivi de tir-reussi la commande regardera à l'aide de la fonction points si c'est un tir à 2 ou 3 point puis ajoutera en conséquence 2 ou 3 à la variable total_points
if element[1] == "tir-reussi":
x = int(element[2])
y = int(element[3])
total_points += points(x, y)
#si c'est un lancer franc la commande ajoutera 1 à la variablke total_points
elif element[1] == "lancer-reu":
total_points += 1
return total_points
#print(totalpoints("j1"))
def rebondspasses (joueur):
with open("stats.txt", "r") as fichier:
rebond_pris = 0
passe = 0
for ligne in fichier:
if joueur.upper() + " " in ligne and ("rebondOff"or "rebondDef") in ligne:
rebond_pris += 1
elif joueur.upper() + " " in ligne and "passe" in ligne:
passe += 1
return rebond_pris, passe
#print(rebondspasses("j1"))
def manque (joueur):
with open("stats.txt", "r") as fichier:
#on établie la variable de perte de balle
perte_balle = 0
for ligne in fichier:
#si le nom du joueur et un tir-manque apparait sur la même ligne la variable augemnte de 1
if joueur.upper() + " " in ligne and "tir-manque" in ligne:
perte_balle += 1
#de même pour un lancer raté
elif joueur.upper() + " " in ligne and "lancer-rat" in ligne:
perte_balle += 1
return perte_balle
#print(manque("j1"))
def affichestats (joueur):
print(totalpoints(joueur))
taux_reussite = reussite(joueur, "tir")
print(taux_reussite[1] / taux_reussite[0] * 100)
print(manque(joueur))
print(affichestats("j1"))