commit 036d4c865fe5bde6862acfd7d57fda28a7adc998 Author: Seyba Date: Mon Apr 7 20:53:53 2025 +0200 first commit diff --git a/README.md b/README.md new file mode 100644 index 0000000..e69de29 diff --git a/mini_projet.py b/mini_projet.py new file mode 100644 index 0000000..a487292 --- /dev/null +++ b/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() \ No newline at end of file diff --git a/projet_basket.py b/projet_basket.py new file mode 100644 index 0000000..df089c1 --- /dev/null +++ b/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")) \ 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