Gestion_Des_Fenetre/gptafficheresultat.py
2024-04-07 00:22:42 +02:00

76 lines
3.1 KiB
Python

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()