2024-02-26 01:31:42 +01:00
|
|
|
import customtkinter as tk # import de la bibliothèque interface graphique "as tk" : on remplace customtkinter par tk
|
2024-03-29 19:48:27 +01:00
|
|
|
from time import sleep
|
|
|
|
import random
|
|
|
|
|
|
|
|
|
|
|
|
TypeDeDes = 6 # variable globale
|
|
|
|
NbredeDes = 1
|
|
|
|
|
2024-02-23 20:29:09 +01:00
|
|
|
|
2024-02-23 21:19:41 +01:00
|
|
|
def quitter(): # création d'une fonction pour quitter
|
|
|
|
fenetreMenu.destroy() # destroy = fonction qui arrête tout
|
2024-02-23 20:29:09 +01:00
|
|
|
|
2024-02-23 21:19:41 +01:00
|
|
|
fenetreMenu = tk.CTk() # définition des caractéristiques de la fenêtre
|
2024-02-23 20:29:09 +01:00
|
|
|
fenetreMenu.title("Menu principal")
|
2024-02-26 18:09:19 +01:00
|
|
|
fenetreMenu.geometry("400x400")
|
2024-02-23 21:19:41 +01:00
|
|
|
|
2024-02-26 22:19:33 +01:00
|
|
|
label = tk.CTkLabel(fenetreMenu, text="Lancez les dés", font=('Arial',22)) # crée du texte
|
|
|
|
label.pack(pady=5)
|
|
|
|
# label.pack(padx=10, pady=10) # padx, pady, ajoute des pixel entre widget
|
2024-02-23 21:19:41 +01:00
|
|
|
|
2024-03-01 20:33:05 +01:00
|
|
|
|
2024-03-29 19:48:27 +01:00
|
|
|
# Création des boutons
|
2024-03-01 20:33:05 +01:00
|
|
|
|
2024-03-29 19:48:27 +01:00
|
|
|
cadreFormatDe=tk.CTkFrame(fenetreMenu) # création d'un cadre pour facilité la disposition
|
|
|
|
cadreFormatDe.pack(side=tk.TOP, anchor=tk.CENTER, pady=10)
|
2024-03-01 20:33:05 +01:00
|
|
|
|
|
|
|
DicoBoutons = {} # création d'un Dico pour distingués les boutons
|
2024-02-26 18:09:19 +01:00
|
|
|
for i in [4, 6, 8, 10, 12, 20] :
|
2024-03-08 19:55:22 +01:00
|
|
|
button = tk.CTkButton(cadreFormatDe, text= f"D{i}", hover=False, width=50) # création d'un bouton
|
|
|
|
button.pack(side=tk.LEFT, padx=1, pady=1) #expand=True, fill=tk.X, anchor=tk.CENTER
|
2024-03-01 20:33:05 +01:00
|
|
|
DicoBoutons[i] = button
|
|
|
|
|
|
|
|
def clic4 ():
|
2024-03-01 21:42:30 +01:00
|
|
|
print("D4")
|
|
|
|
for i in [4, 6, 8, 10, 12, 20] :
|
|
|
|
DicoBoutons[i].configure(fg_color="blue")
|
|
|
|
DicoBoutons[4].configure(fg_color="red")
|
2024-03-29 19:48:27 +01:00
|
|
|
TypeDeDes = 4
|
2024-03-01 21:42:30 +01:00
|
|
|
|
|
|
|
def clic6 ():
|
|
|
|
print("D6")
|
|
|
|
for i in [4, 6, 8, 10, 12, 20] :
|
|
|
|
DicoBoutons[i].configure(fg_color="blue")
|
|
|
|
DicoBoutons[6].configure(fg_color="red")
|
2024-03-29 19:48:27 +01:00
|
|
|
TypeDeDes = 6
|
|
|
|
|
2024-03-01 21:42:30 +01:00
|
|
|
|
|
|
|
def clic8 ():
|
|
|
|
print("D8")
|
|
|
|
for i in [4, 6, 8, 10, 12, 20] :
|
|
|
|
DicoBoutons[i].configure(fg_color="blue")
|
|
|
|
DicoBoutons[8].configure(fg_color="red")
|
2024-03-29 19:48:27 +01:00
|
|
|
TypeDeDes = 8
|
2024-03-01 21:42:30 +01:00
|
|
|
|
|
|
|
def clic10 ():
|
|
|
|
print("D10")
|
|
|
|
for i in [4, 6, 8, 10, 12, 20] :
|
|
|
|
DicoBoutons[i].configure(fg_color="blue")
|
|
|
|
DicoBoutons[10].configure(fg_color="red")
|
2024-03-29 19:48:27 +01:00
|
|
|
TypeDeDes = 10
|
2024-03-01 21:42:30 +01:00
|
|
|
|
|
|
|
def clic12 ():
|
|
|
|
print("D12")
|
|
|
|
for i in [4, 6, 8, 10, 12, 20] :
|
|
|
|
DicoBoutons[i].configure(fg_color="blue")
|
|
|
|
DicoBoutons[12].configure(fg_color="red")
|
2024-03-29 19:48:27 +01:00
|
|
|
TypeDeDes = 12
|
2024-03-01 21:42:30 +01:00
|
|
|
|
|
|
|
def clic20 ():
|
|
|
|
print("D20")
|
|
|
|
for i in [4, 6, 8, 10, 12, 20] :
|
|
|
|
DicoBoutons[i].configure(fg_color="blue")
|
|
|
|
DicoBoutons[20].configure(fg_color="red")
|
2024-03-29 19:48:27 +01:00
|
|
|
TypeDeDes = 20
|
|
|
|
|
2024-03-01 21:42:30 +01:00
|
|
|
|
2024-03-01 20:33:05 +01:00
|
|
|
|
|
|
|
DicoBoutons[4].configure(command=clic4)
|
2024-03-01 21:42:30 +01:00
|
|
|
DicoBoutons[6].configure(command=clic6)
|
|
|
|
DicoBoutons[8].configure(command=clic8)
|
|
|
|
DicoBoutons[10].configure(command=clic10)
|
|
|
|
DicoBoutons[12].configure(command=clic12)
|
|
|
|
DicoBoutons[20].configure(command=clic20)
|
|
|
|
|
2024-03-01 20:33:05 +01:00
|
|
|
|
2024-03-29 19:48:27 +01:00
|
|
|
# print(DicoBoutons) #print de controle
|
|
|
|
|
|
|
|
|
|
|
|
labelerreur = tk.CTkLabel(fenetreMenu)
|
|
|
|
|
|
|
|
def recup_NbreDes():
|
|
|
|
labelerreur.pack_forget()
|
|
|
|
NbredeDes = entryNbreDes.get()
|
|
|
|
|
|
|
|
try:
|
|
|
|
nombre_entier = int(NbredeDes)
|
|
|
|
print("Nombre entier saisi :", nombre_entier)
|
|
|
|
|
|
|
|
|
|
|
|
#labelerreur.configure_forget()
|
|
|
|
# Vous pouvez utiliser 'nombre_entier' comme vous le souhaitez ici
|
|
|
|
except ValueError:
|
|
|
|
labelerreur.configure(fenetreMenu, text="Veuillez saisir un nombre entier valide.", font=('Arial',20)) # crée du texte (label)
|
|
|
|
labelerreur.pack()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
resultatDe = 0
|
|
|
|
nombreDeDe = nombre_entier
|
|
|
|
typeDeDe = TypeDeDes
|
|
|
|
print(typeDeDe , nombreDeDe)
|
|
|
|
|
|
|
|
# listeResultat = [0] # création d'une liste pour stocker le nombre de résultats par valeur
|
|
|
|
# for i in range(1,typeDeDe) :
|
|
|
|
# listeResultat.append(0)
|
|
|
|
|
|
|
|
# i = 1 # variable d'incrémentation
|
|
|
|
# while( i <= nombreDeDe ) : #boucle de lancer de dés et stockage des résultats par valeur
|
|
|
|
# resultatDe = random.randint(1,typeDeDe)
|
|
|
|
# listeResultat[resultatDe-1] += 1
|
|
|
|
|
|
|
|
|
|
|
|
# listeReussite = [0]
|
|
|
|
# for i in range(1,typeDeDe) :
|
|
|
|
# listeReussite.append(0)
|
|
|
|
|
|
|
|
# for i in range(0,typeDeDe) :
|
|
|
|
|
|
|
|
# for u in range(i,typeDeDe) :
|
|
|
|
# listeReussite[i] = listeReussite[i] + listeResultat[u]
|
|
|
|
# print(listeResultat)
|
|
|
|
# print(listeReussite)
|
|
|
|
|
|
|
|
|
|
|
|
cadreNbreDe=tk.CTkFrame(fenetreMenu) # création d'un cadre pour le nombre de dés
|
|
|
|
cadreNbreDe.pack(side=tk.TOP, pady=10) # définition du cadre
|
|
|
|
label = tk.CTkLabel(cadreNbreDe, text="Nombre de dés", font=('Arial',20)) # crée du texte (label)
|
|
|
|
label.pack(side=tk.LEFT, padx=10) # définition des caractéristiques du label
|
|
|
|
entryNbreDes = tk.CTkEntry(cadreNbreDe, width=50) # crée une 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.pack(side=tk.LEFT)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-03-01 20:33:05 +01:00
|
|
|
|
2024-03-29 19:48:27 +01:00
|
|
|
# labelresult = tk.CTkLabel( fenetreMenu , text="essai resultat")
|
|
|
|
# labelresult.pack()
|
2024-02-26 01:31:42 +01:00
|
|
|
|
2024-02-23 21:19:41 +01:00
|
|
|
|
2024-02-26 22:19:33 +01:00
|
|
|
|
|
|
|
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
|
|
|
|
button = tk.CTkButton(cadreQuit, text="QUITTER", command=quitter) # création d'un bouton pour fermer
|
|
|
|
button.pack(side=tk.BOTTOM, pady=15) # side=tk.BOTTOM est utilisé pour ancrer vers le bas : indiquer celui qui est plus bas en premier
|
2024-02-26 01:31:42 +01:00
|
|
|
|
2024-03-01 20:33:05 +01:00
|
|
|
|
2024-03-29 19:48:27 +01:00
|
|
|
# entry = tk.CTkEntry(fenetreMenu, width=250) # crée une zone de saisie
|
|
|
|
# entry.pack(side=tk.BOTTOM,)
|
2024-02-23 21:19:41 +01:00
|
|
|
|
|
|
|
|
|
|
|
fenetreMenu.mainloop()
|
|
|
|
|
|
|
|
|
|
|
|
|