import tkinter as tk import random def lancer_des(nombre_lancers, nombre_faces): # Initialiser un dictionnaire pour compter le nombre d'occurrences de chaque valeur de dé resultat_lancers = {i+1: 0 for i in range(nombre_faces)} # Effectuer les lancers de dé et compter les occurrences de chaque valeur for _ in range(nombre_lancers): valeur = random.randint(1, nombre_faces) resultat_lancers[valeur] += 1 # Calculer la somme des occurrences pour les valeurs supérieures à la moyenne somme_occurrences_sup_moyenne = sum(occurrences for valeur, occurrences in resultat_lancers.items() if valeur > (nombre_faces / 2)) # Afficher les résultats dans la fenêtre Tkinter afficher_resultats(resultat_lancers, somme_occurrences_sup_moyenne) def afficher_resultats(resultat_lancers, somme_occurrences_sup_moyenne): # Supprimer les anciens résultats s'il y en a effacer_resultats() # Afficher les résultats dans une grille label_titre = tk.Label(fenetre, text="Résultats des lancers de dé") label_titre.grid(row=0, column=0, columnspan=2) # Afficher les en-têtes des colonnes label_valeur = tk.Label(fenetre, text="Valeur du dé") label_valeur.grid(row=1, column=0) label_occurrences = tk.Label(fenetre, text="Occurrences") label_occurrences.grid(row=1, column=1) # Afficher chaque valeur de dé et son nombre d'occurrences for i, (valeur, occurrences) in enumerate(resultat_lancers.items(), start=2): label_valeur = tk.Label(fenetre, text=str(valeur)) label_valeur.grid(row=i, column=0) label_occurrences = tk.Label(fenetre, text=str(occurrences)) label_occurrences.grid(row=i, column=1) # Afficher la somme des occurrences pour les valeurs supérieures à la moyenne label_somme = tk.Label(fenetre, text="Somme occurrences (valeurs supérieures à la moyenne)") label_somme.grid(row=i+1, column=0, columnspan=2) label_somme_occurrences = tk.Label(fenetre, text=str(somme_occurrences_sup_moyenne)) label_somme_occurrences.grid(row=i+2, column=0, columnspan=2) def effacer_resultats(): # Supprimer tous les widgets dans la fenêtre (sauf l'entrée et le bouton) for widget in fenetre.winfo_children(): if widget not in [entree_lancers, entree_faces, bouton_lancer]: widget.grid_forget() # Interface graphique fenetre = tk.Tk() fenetre.title("Lancers de dés") # Entrées pour le nombre de lancers et le nombre de faces du dé entree_lancers = tk.Entry(fenetre, width=10) entree_lancers.grid(row=0, column=0, padx=5, pady=5) label_lancers = tk.Label(fenetre, text="Nombre de lancers") label_lancers.grid(row=0, column=1, padx=5, pady=5) entree_faces = tk.Entry(fenetre, width=10) entree_faces.grid(row=1, column=0, padx=5, pady=5) label_faces = tk.Label(fenetre, text="Nombre de faces du dé") label_faces.grid(row=1, column=1, padx=5, pady=5) # Bouton pour lancer les dés bouton_lancer = tk.Button(fenetre, text="Lancer les dés", command=lambda: lancer_des(int(entree_lancers.get()), int(entree_faces.get()))) bouton_lancer.grid(row=2, column=0, columnspan=2, pady=10) fenetre.mainloop()