Browse Source

first commit

master
Seyba 2 months ago
commit
036d4c865f
  1. 0
      README.md
  2. 56
      mini_projet.py
  3. 87
      projet_basket.py
  4. 197
      stats.txt

0
README.md

56
mini_projet.py

@ -0,0 +1,56 @@
import tkinter as tk
# Fonction qui trace la droite y = ax + b sur le canvas
def trace():
a = int(entry_a.get()) # Récupère la valeur de a
b = int(entry_b.get()) # Récupère la valeur de b
canvas.delete("all") # Efface le contenu du canvas avant de redessiner
# Dessine l'axe des abscisses au milieu du canvas
canvas.create_line(0, 150, 400, 150, fill="black")
# Dessine l'axe des ordonnées au milieu du canvas
canvas.create_line(200, 0, 200, 300, fill="black")
# Définit deux points extrêmes pour tracer la droite
x1, y1 = -200, a * -200 + b
x2, y2 = 200, a * 200 + b
# Convertit les coordonnées mathématiques en pixels
y1_pixel = 150 - y1
y2_pixel = 150 - y2
# Dessine la droite en rouge
canvas.create_line(x1 + 200, y1_pixel, x2 + 200, y2_pixel, fill="red", width=2)
# Création de la fenêtre principale
root = tk.Tk()
root.title("Traceur de droite")
# Ajout d'un cadre pour organiser les éléments
top_frame = tk.Frame(root)
top_frame.pack(pady=10)
# Titre de l'application
tk.Label(top_frame, text="Traceur de droite : y = ax + b", font=("Arial", 14, "bold")).grid(row=0, column=0, columnspan=2, pady=5)
# Champ de saisie pour le coefficient a
tk.Label(top_frame, text="Coefficient a :").grid(row=1, column=0)
entry_a = tk.Entry(top_frame)
entry_a.grid(row=1, column=1)
# Champ de saisie pour le coefficient b
tk.Label(top_frame, text="Coefficient b :").grid(row=2, column=0)
entry_b = tk.Entry(top_frame)
entry_b.grid(row=2, column=1)
# Bouton pour tracer la droite
btn_trace = tk.Button(top_frame, text="Tracer la droite", command=trace)
btn_trace.grid(row=3, column=0, columnspan=2, pady=10)
# Zone de dessin pour afficher la droite
canvas = tk.Canvas(root, width=400, height=300, bg="white")
canvas.pack(pady=10)
# Lancement de la boucle principale
root.mainloop()

87
projet_basket.py

@ -0,0 +1,87 @@
#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("j1", "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"))

197
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
Loading…
Cancel
Save