premiere version qui fonctionne avec affichage
This commit is contained in:
parent
5c44001bb4
commit
8cb94603d2
120
GestionDes.py
120
GestionDes.py
@ -3,8 +3,8 @@ from time import sleep
|
|||||||
import random
|
import random
|
||||||
|
|
||||||
|
|
||||||
TypeDeDes = 6 # variable globale
|
TypeDeDes = 0 # variables globales
|
||||||
NbredeDes = 1
|
NbredeDes = 0
|
||||||
|
|
||||||
|
|
||||||
def quitter(): # création d'une fonction pour quitter
|
def quitter(): # création d'une fonction pour quitter
|
||||||
@ -12,15 +12,12 @@ def quitter(): # création d'une fonction pour quitter
|
|||||||
|
|
||||||
fenetreMenu = tk.CTk() # définition des caractéristiques de la fenêtre
|
fenetreMenu = tk.CTk() # définition des caractéristiques de la fenêtre
|
||||||
fenetreMenu.title("Menu principal")
|
fenetreMenu.title("Menu principal")
|
||||||
fenetreMenu.geometry("400x400")
|
fenetreMenu.geometry("400x600")
|
||||||
|
|
||||||
label = tk.CTkLabel(fenetreMenu, text="Lancez les dés", font=('Arial',22)) # crée du texte
|
label = tk.CTkLabel(fenetreMenu, text="Lancez les dés", font=('Arial',22)) # crée du texte
|
||||||
label.pack(pady=5)
|
label.pack(pady=5)
|
||||||
# label.pack(padx=10, pady=10) # padx, pady, ajoute des pixel entre widget
|
|
||||||
|
|
||||||
|
|
||||||
# Création des boutons
|
# Création des boutons
|
||||||
|
|
||||||
cadreFormatDe=tk.CTkFrame(fenetreMenu) # création d'un cadre pour facilité la disposition
|
cadreFormatDe=tk.CTkFrame(fenetreMenu) # création d'un cadre pour facilité la disposition
|
||||||
cadreFormatDe.pack(side=tk.TOP, anchor=tk.CENTER, pady=10)
|
cadreFormatDe.pack(side=tk.TOP, anchor=tk.CENTER, pady=10)
|
||||||
|
|
||||||
@ -30,18 +27,20 @@ for i in [4, 6, 8, 10, 12, 20] :
|
|||||||
button.pack(side=tk.LEFT, padx=1, pady=1) #expand=True, fill=tk.X, anchor=tk.CENTER
|
button.pack(side=tk.LEFT, padx=1, pady=1) #expand=True, fill=tk.X, anchor=tk.CENTER
|
||||||
DicoBoutons[i] = button
|
DicoBoutons[i] = button
|
||||||
|
|
||||||
def clic4 ():
|
def clic4 (): # fonction de l'action sur le bouton (choix du type de dé)
|
||||||
print("D4")
|
print("D4")
|
||||||
for i in [4, 6, 8, 10, 12, 20] :
|
for i in [4, 6, 8, 10, 12, 20] : # boucle qui change la couleur de tous les boutons
|
||||||
DicoBoutons[i].configure(fg_color="blue")
|
DicoBoutons[i].configure(fg_color="blue") # pour réinitialisé en bleu
|
||||||
DicoBoutons[4].configure(fg_color="red")
|
DicoBoutons[4].configure(fg_color="red") # changement de la couleur en rouge pour visualisé sur la fenêtre
|
||||||
TypeDeDes = 4
|
global TypeDeDes # indique l'utilisation d'une variable global (sinon la variable sera redéfini en local)
|
||||||
|
TypeDeDes = 4 # affectation du type de dé
|
||||||
|
|
||||||
def clic6 ():
|
def clic6 ():
|
||||||
print("D6")
|
print("D6")
|
||||||
for i in [4, 6, 8, 10, 12, 20] :
|
for i in [4, 6, 8, 10, 12, 20] :
|
||||||
DicoBoutons[i].configure(fg_color="blue")
|
DicoBoutons[i].configure(fg_color="blue")
|
||||||
DicoBoutons[6].configure(fg_color="red")
|
DicoBoutons[6].configure(fg_color="red")
|
||||||
|
global TypeDeDes
|
||||||
TypeDeDes = 6
|
TypeDeDes = 6
|
||||||
|
|
||||||
|
|
||||||
@ -50,6 +49,7 @@ def clic8 ():
|
|||||||
for i in [4, 6, 8, 10, 12, 20] :
|
for i in [4, 6, 8, 10, 12, 20] :
|
||||||
DicoBoutons[i].configure(fg_color="blue")
|
DicoBoutons[i].configure(fg_color="blue")
|
||||||
DicoBoutons[8].configure(fg_color="red")
|
DicoBoutons[8].configure(fg_color="red")
|
||||||
|
global TypeDeDes
|
||||||
TypeDeDes = 8
|
TypeDeDes = 8
|
||||||
|
|
||||||
def clic10 ():
|
def clic10 ():
|
||||||
@ -57,6 +57,7 @@ def clic10 ():
|
|||||||
for i in [4, 6, 8, 10, 12, 20] :
|
for i in [4, 6, 8, 10, 12, 20] :
|
||||||
DicoBoutons[i].configure(fg_color="blue")
|
DicoBoutons[i].configure(fg_color="blue")
|
||||||
DicoBoutons[10].configure(fg_color="red")
|
DicoBoutons[10].configure(fg_color="red")
|
||||||
|
global TypeDeDes
|
||||||
TypeDeDes = 10
|
TypeDeDes = 10
|
||||||
|
|
||||||
def clic12 ():
|
def clic12 ():
|
||||||
@ -64,6 +65,7 @@ def clic12 ():
|
|||||||
for i in [4, 6, 8, 10, 12, 20] :
|
for i in [4, 6, 8, 10, 12, 20] :
|
||||||
DicoBoutons[i].configure(fg_color="blue")
|
DicoBoutons[i].configure(fg_color="blue")
|
||||||
DicoBoutons[12].configure(fg_color="red")
|
DicoBoutons[12].configure(fg_color="red")
|
||||||
|
global TypeDeDes
|
||||||
TypeDeDes = 12
|
TypeDeDes = 12
|
||||||
|
|
||||||
def clic20 ():
|
def clic20 ():
|
||||||
@ -71,10 +73,9 @@ def clic20 ():
|
|||||||
for i in [4, 6, 8, 10, 12, 20] :
|
for i in [4, 6, 8, 10, 12, 20] :
|
||||||
DicoBoutons[i].configure(fg_color="blue")
|
DicoBoutons[i].configure(fg_color="blue")
|
||||||
DicoBoutons[20].configure(fg_color="red")
|
DicoBoutons[20].configure(fg_color="red")
|
||||||
|
global TypeDeDes
|
||||||
TypeDeDes = 20
|
TypeDeDes = 20
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
DicoBoutons[4].configure(command=clic4)
|
DicoBoutons[4].configure(command=clic4)
|
||||||
DicoBoutons[6].configure(command=clic6)
|
DicoBoutons[6].configure(command=clic6)
|
||||||
DicoBoutons[8].configure(command=clic8)
|
DicoBoutons[8].configure(command=clic8)
|
||||||
@ -82,54 +83,85 @@ DicoBoutons[10].configure(command=clic10)
|
|||||||
DicoBoutons[12].configure(command=clic12)
|
DicoBoutons[12].configure(command=clic12)
|
||||||
DicoBoutons[20].configure(command=clic20)
|
DicoBoutons[20].configure(command=clic20)
|
||||||
|
|
||||||
|
|
||||||
# print(DicoBoutons) #print de controle
|
# print(DicoBoutons) #print de controle
|
||||||
|
|
||||||
|
|
||||||
labelerreur = tk.CTkLabel(fenetreMenu)
|
labelerreur = tk.CTkLabel(fenetreMenu)
|
||||||
|
|
||||||
def recup_NbreDes():
|
def recup_NbreDes():
|
||||||
|
|
||||||
|
entierNDD = 0
|
||||||
labelerreur.pack_forget()
|
labelerreur.pack_forget()
|
||||||
|
global NbredeDes
|
||||||
NbredeDes = entryNbreDes.get()
|
NbredeDes = entryNbreDes.get()
|
||||||
|
|
||||||
try:
|
try:
|
||||||
nombre_entier = int(NbredeDes)
|
entierNDD = int(NbredeDes)
|
||||||
print("Nombre entier saisi :", nombre_entier)
|
print("Nombre entier saisi :", entierNDD)
|
||||||
|
|
||||||
|
|
||||||
#labelerreur.configure_forget()
|
|
||||||
# Vous pouvez utiliser 'nombre_entier' comme vous le souhaitez ici
|
|
||||||
except ValueError:
|
except ValueError:
|
||||||
labelerreur.configure(fenetreMenu, text="Veuillez saisir un nombre entier valide.", font=('Arial',20)) # crée du texte (label)
|
labelerreur.configure(fenetreMenu, text="Veuillez saisir un nombre entier valide.", font=('Arial',20)) # crée du texte (label)
|
||||||
labelerreur.pack()
|
labelerreur.pack()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
resultatDe = 0
|
resultatDe = 0
|
||||||
nombreDeDe = nombre_entier
|
|
||||||
typeDeDe = TypeDeDes
|
typeDeDe = TypeDeDes
|
||||||
print(typeDeDe , nombreDeDe)
|
print(typeDeDe , entierNDD) # print de vérif des données
|
||||||
|
|
||||||
# listeResultat = [0] # création d'une liste pour stocker le nombre de résultats par valeur
|
listeResultat = [0] # création d'une liste pour stocker le nombre de résultats par valeur
|
||||||
# for i in range(1,typeDeDe) :
|
for i in range(1,typeDeDe) : # boucle d'ajout d'un élément à la liste
|
||||||
# listeResultat.append(0)
|
listeResultat.append(0)
|
||||||
|
|
||||||
# i = 1 # variable d'incrémentation
|
i = 1 # variable d'incrémentation
|
||||||
# while( i <= nombreDeDe ) : #boucle de lancer de dés et stockage des résultats par valeur
|
while( i <= entierNDD ) : # boucle de lancer de dés et stockage des résultats par valeur
|
||||||
# resultatDe = random.randint(1,typeDeDe)
|
resultatDe = random.randint(1,typeDeDe)
|
||||||
# listeResultat[resultatDe-1] += 1
|
listeResultat[resultatDe-1] += 1
|
||||||
|
i+=1
|
||||||
|
|
||||||
|
listeReussite = [0] # création d'un tableau de réussite
|
||||||
|
for i in range(1,typeDeDe) : # boucle d'ajout d'un élément au tableau
|
||||||
|
listeReussite.append(0)
|
||||||
|
|
||||||
|
for i in range(0,typeDeDe) :
|
||||||
|
for u in range(i,typeDeDe) : # boucle de remplissage du tableau des réussites
|
||||||
|
listeReussite[i] = listeReussite[i] + listeResultat[u]
|
||||||
|
print(listeResultat) # print de contrôle du tableau des résultat de lancer
|
||||||
|
print(listeReussite) # print de contrôle du tableau des réussites
|
||||||
|
|
||||||
|
|
||||||
# listeReussite = [0]
|
# Supprimer les anciens résultats s'il y en a
|
||||||
# for i in range(1,typeDeDe) :
|
effacer_resultats()
|
||||||
# listeReussite.append(0)
|
|
||||||
|
|
||||||
# for i in range(0,typeDeDe) :
|
# Afficher les résultats dans une grille
|
||||||
|
#label_titre = tk.Label(fenetreMenu, text="Résultats des lancers de dé")
|
||||||
# for u in range(i,typeDeDe) :
|
#label_titre.grid(row=0, column=0, columnspan=2)
|
||||||
# listeReussite[i] = listeReussite[i] + listeResultat[u]
|
|
||||||
# print(listeResultat)
|
# Afficher les en-têtes des colonnes
|
||||||
# print(listeReussite)
|
label_valeur = tk.CTkLabel(cadreAffResultat, text="Face du dé")
|
||||||
|
label_valeur.grid(row=1, column=0,padx=5, )
|
||||||
|
|
||||||
|
label_occurrences = tk.CTkLabel(cadreAffResultat, text="Occurrences")
|
||||||
|
label_occurrences.grid(row=1, column=1 ,padx=5, )
|
||||||
|
|
||||||
|
label_Reussites = tk.CTkLabel(cadreAffResultat, text="Réussites")
|
||||||
|
label_Reussites.grid(row=1, column=2,padx=5, )
|
||||||
|
|
||||||
|
# Afficher chaque valeur de dé et son nombre d'occurrences
|
||||||
|
for i in range(1,typeDeDe+1) :
|
||||||
|
|
||||||
|
label_valeur = tk.CTkLabel(cadreAffResultat, text=str(i))
|
||||||
|
label_valeur.grid(row=i+1, column=0 )
|
||||||
|
|
||||||
|
label_occurrences = tk.CTkLabel(cadreAffResultat, text=str(listeResultat[i-1]))
|
||||||
|
label_occurrences.grid(row=i+1, column=1 )
|
||||||
|
|
||||||
|
label_Reussites = tk.CTkLabel(cadreAffResultat, text=str(listeReussite[i-1]))
|
||||||
|
label_Reussites.grid(row=i+1, column=2 )
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def effacer_resultats():
|
||||||
|
# Supprimer tous les widgets
|
||||||
|
for widget in cadreAffResultat.winfo_children() :
|
||||||
|
widget.grid_forget()
|
||||||
|
|
||||||
|
|
||||||
cadreNbreDe=tk.CTkFrame(fenetreMenu) # création d'un cadre pour le nombre de dés
|
cadreNbreDe=tk.CTkFrame(fenetreMenu) # création d'un cadre pour le nombre de dés
|
||||||
@ -140,16 +172,12 @@ entryNbreDes = tk.CTkEntry(cadreNbreDe, width=50) # crée une zone de saisi
|
|||||||
entryNbreDes.pack(side=tk.LEFT,padx=5) # définition des caractéristiques de la zone de saisie
|
entryNbreDes.pack(side=tk.LEFT,padx=5) # définition des caractéristiques de la zone de saisie
|
||||||
BoutonOK = tk.CTkButton(cadreNbreDe,text = "OK", width=40, command=recup_NbreDes )
|
BoutonOK = tk.CTkButton(cadreNbreDe,text = "OK", width=40, command=recup_NbreDes )
|
||||||
BoutonOK.pack(side=tk.LEFT)
|
BoutonOK.pack(side=tk.LEFT)
|
||||||
|
cadreAffResultat = tk.CTkFrame(fenetreMenu)
|
||||||
|
cadreAffResultat.pack()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# labelresult = tk.CTkLabel( fenetreMenu , text="essai resultat")
|
|
||||||
# labelresult.pack()
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
cadreQuit=tk.CTkFrame(fenetreMenu) # création d'un cadre pour facilité la disposition
|
cadreQuit=tk.CTkFrame(fenetreMenu) # création d'un cadre pour facilité la disposition
|
||||||
cadreQuit.pack(fill=tk.X, side=tk.BOTTOM, anchor=tk.CENTER, pady=15) # fill permet l'allongemment
|
cadreQuit.pack(fill=tk.X, side=tk.BOTTOM, anchor=tk.CENTER, pady=15) # fill permet l'allongemment
|
||||||
button = tk.CTkButton(cadreQuit, text="QUITTER", command=quitter) # création d'un bouton pour fermer
|
button = tk.CTkButton(cadreQuit, text="QUITTER", command=quitter) # création d'un bouton pour fermer
|
||||||
|
31
essaiGPTaff.py
Normal file
31
essaiGPTaff.py
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
import tkinter as tk
|
||||||
|
|
||||||
|
# Fonction pour afficher les résultats
|
||||||
|
def afficher_resultats():
|
||||||
|
# Supprimer les anciens résultats s'il y en a
|
||||||
|
effacer_resultats()
|
||||||
|
|
||||||
|
# Supposons que vous ayez des résultats dans une liste
|
||||||
|
resultats = ["Résultat 1", "Résultat 2", "Résultat 3"]
|
||||||
|
|
||||||
|
# Afficher chaque résultat dans un label
|
||||||
|
for i, resultat in enumerate(resultats):
|
||||||
|
label_resultat = tk.Label(fenetre, text=resultat)
|
||||||
|
label_resultat.pack()
|
||||||
|
|
||||||
|
# Fonction pour effacer les résultats précédents
|
||||||
|
def effacer_resultats():
|
||||||
|
# Supprimer tous les labels précédents
|
||||||
|
for widget in fenetre.winfo_children():
|
||||||
|
if isinstance(widget, tk.Label):
|
||||||
|
widget.pack_forget()
|
||||||
|
|
||||||
|
# Interface graphique
|
||||||
|
fenetre = tk.Tk()
|
||||||
|
fenetre.title("Affichage de résultats")
|
||||||
|
|
||||||
|
# Bouton pour afficher les résultats
|
||||||
|
bouton_afficher_resultats = tk.Button(fenetre, text="Afficher les résultats", command=afficher_resultats)
|
||||||
|
bouton_afficher_resultats.pack(pady=10)
|
||||||
|
|
||||||
|
fenetre.mainloop()
|
76
gptafficheresultat.py
Normal file
76
gptafficheresultat.py
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
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()
|
Loading…
x
Reference in New Issue
Block a user