Update ARE-DYNAMIC.py
This commit is contained in:
parent
bb19343641
commit
39fed16d4f
131
ARE-DYNAMIC.py
131
ARE-DYNAMIC.py
|
@ -21,6 +21,8 @@ import numpy as np
|
||||||
import matplotlib as mpl
|
import matplotlib as mpl
|
||||||
import matplotlib.pyplot as plt
|
import matplotlib.pyplot as plt
|
||||||
import matplotlib.animation as animation
|
import matplotlib.animation as animation
|
||||||
|
from tkinter import *
|
||||||
|
from tkinter.ttk import *
|
||||||
|
|
||||||
######################
|
######################
|
||||||
### Variables Globales
|
### Variables Globales
|
||||||
|
@ -73,6 +75,37 @@ ListePourcents = list()
|
||||||
#Couleurs des Stratégies
|
#Couleurs des Stratégies
|
||||||
CouleursStrat=['b','r','black','g','purple']
|
CouleursStrat=['b','r','black','g','purple']
|
||||||
|
|
||||||
|
# Fonction pour le GUI
|
||||||
|
def saisir_les_pourcentages():
|
||||||
|
"""
|
||||||
|
S'il y a eu clic sur le bouton du
|
||||||
|
type 4, affiche 5 entry box pour
|
||||||
|
saisir les pourcentages voulus
|
||||||
|
"""
|
||||||
|
Label(fenetre, text="% stratégie0:").grid(row=9, column =0)
|
||||||
|
per0=IntVar()
|
||||||
|
Entry(fenetre, textvariable=per0, width=3).grid(row=9, column=1)
|
||||||
|
|
||||||
|
Label(fenetre, text ="% stratégie1:").grid(row=10, column=0)
|
||||||
|
per1 =IntVar()
|
||||||
|
Entry(fenetre, textvariable=per1, width=3).grid(row=10, column=1)
|
||||||
|
|
||||||
|
Label(fenetre, text ="% stratégie2:").grid(row=11, column=0)
|
||||||
|
per2 =IntVar()
|
||||||
|
Entry(fenetre, textvariable=per2, width=3).grid(row=11, column=1)
|
||||||
|
|
||||||
|
Label(fenetre, text ="% stratégie3:").grid(row=12, column=0)
|
||||||
|
per3 =IntVar()
|
||||||
|
Entry(fenetre, textvariable=per3, width=3).grid(row=12, column=1)
|
||||||
|
|
||||||
|
Label(fenetre, text ="% stratégie4:").grid(row=13, column=0)
|
||||||
|
per4 =IntVar()
|
||||||
|
Entry(fenetre, textvariable=per4, width=3).grid(row=13, column=1)
|
||||||
|
|
||||||
|
global ListePourcents
|
||||||
|
ListePourcents=[per0.get(), per1.get(), per2.get(), per3.get(), per4.get()]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Types:
|
Types:
|
||||||
|
@ -214,7 +247,7 @@ def matrice_init_meme_strat():
|
||||||
Index: 0
|
Index: 0
|
||||||
|
|
||||||
Crée la matrice des joueurs où chacun a la même stratégie
|
Crée la matrice des joueurs où chacun a la même stratégie
|
||||||
mais commence avec des statuts différents, générés aléatoirement
|
mais commence avec des états différents, générés aléatoirement
|
||||||
"""
|
"""
|
||||||
|
|
||||||
histo_strat = [StratParDefaut]
|
histo_strat = [StratParDefaut]
|
||||||
|
@ -438,6 +471,80 @@ def strat_principal_adversaire(joueur, adversaire):
|
||||||
else:
|
else:
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
|
######################
|
||||||
|
#INTERFACE GRAPHIQUE UTILISATEUR (GUI)
|
||||||
|
######################
|
||||||
|
# Fonctions pour command
|
||||||
|
######################
|
||||||
|
|
||||||
|
|
||||||
|
# Initialise la fenetre principale
|
||||||
|
fenetre=Tk()
|
||||||
|
# Taille en abscisse de la matrice
|
||||||
|
X=IntVar(fenetre)
|
||||||
|
|
||||||
|
# Taille en ordonnée de la matrice
|
||||||
|
Y=IntVar(fenetre)
|
||||||
|
|
||||||
|
# Strategie definie pour le type 1
|
||||||
|
Strat=IntVar(fenetre)
|
||||||
|
|
||||||
|
# Type de matrice selectionné par l'user
|
||||||
|
Var_choix=IntVar(fenetre)
|
||||||
|
|
||||||
|
# Nombre d'itérations maximum
|
||||||
|
It=IntVar(fenetre)
|
||||||
|
|
||||||
|
def affichage_combobox():
|
||||||
|
"""
|
||||||
|
S'il y a eu clic sur le bouton,
|
||||||
|
on affiche un combobox pour selectionner
|
||||||
|
la stratégie par défaut voulue
|
||||||
|
"""
|
||||||
|
global Strat
|
||||||
|
Label(fenetre, text="Stratégie n°").grid(row=5, column=0, sticky=E)
|
||||||
|
Combobox(fenetre, textvariable=Strat, values=(0, 1, 2, 3, 4), width=3).grid(row=5, column=1, sticky=W)
|
||||||
|
|
||||||
|
def Interface():
|
||||||
|
"""
|
||||||
|
Affiche l'interface graphique utilisateur
|
||||||
|
qui permet de saisir les paramètres de la
|
||||||
|
simulation
|
||||||
|
"""
|
||||||
|
|
||||||
|
global X
|
||||||
|
global Y
|
||||||
|
global Var_choix
|
||||||
|
global Vitesse
|
||||||
|
|
||||||
|
|
||||||
|
Label(fenetre, text = "Paramétrage des variables").grid(row = 0, columnspan = 2)
|
||||||
|
Label(fenetre, text = "Saisir la taille de la matrice souhaitée:").grid(row=1, columnspan = 2)
|
||||||
|
Label(fenetre, text = "X =").grid(row = 2, column = 0, sticky=E)
|
||||||
|
Entry(fenetre, textvariable = X, width = 3).grid(row = 2, column = 1, sticky = W)
|
||||||
|
|
||||||
|
Label(fenetre, text = "Y =").grid(row=3, sticky = E, column=0)
|
||||||
|
Entry(fenetre, textvariable=Y, width=3).grid(row=3, column=1, sticky = W)
|
||||||
|
|
||||||
|
Label(fenetre, text="Choisir le type de la matrice initiale:").grid(row=4, columnspan = 2)
|
||||||
|
|
||||||
|
|
||||||
|
Radiobutton(fenetre, text="Type 1", variable=Var_choix, value=0, command=affichage_combobox).grid(row=5, sticky=W)
|
||||||
|
Radiobutton(fenetre, text="Type 2", variable=Var_choix, value=1, command=affichage_combobox).grid(row=6, sticky=W)
|
||||||
|
Radiobutton(fenetre, text="Type 3", variable=Var_choix, value=2, command=affichage_combobox).grid(row=7, sticky=W)
|
||||||
|
Radiobutton(fenetre, text="Type 4", variable=Var_choix, value=3, command=saisir_les_pourcentages).grid(row=8, sticky=W)
|
||||||
|
|
||||||
|
Label(fenetre, text="Saisir le nombre d'itérations:").grid(row = 14, columnspan=1)
|
||||||
|
Entry(fenetre, textvariable=It, width=3).grid(row = 15)
|
||||||
|
|
||||||
|
Label(fenetre, text="Saisir la vitesse de défilement des images:").grid(row=16)
|
||||||
|
vit = IntVar()
|
||||||
|
Entry(fenetre, textvariable=vit, width=3).grid(row=17)
|
||||||
|
|
||||||
|
Button(fenetre, text="Continuer", command=init_complete).grid(row=18, column=0)
|
||||||
|
Button(fenetre, text="Quitter", command=fenetre.quit).grid(row=19)
|
||||||
|
|
||||||
|
fenetre.mainloop()
|
||||||
|
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
@ -466,6 +573,24 @@ def init_complete():
|
||||||
global Grille
|
global Grille
|
||||||
global StratsResultats
|
global StratsResultats
|
||||||
|
|
||||||
|
global Vitesse
|
||||||
|
Vitesse = vit.get()
|
||||||
|
|
||||||
|
global TailleGrilleX
|
||||||
|
global TailleGrilleY
|
||||||
|
TailleGrilleX=X.get()
|
||||||
|
TailleGrilleY=Y.get()
|
||||||
|
print(TailleGrilleX)
|
||||||
|
|
||||||
|
global TypeGrilleInitiale
|
||||||
|
TypeGrilleInitiale=Var_choix.get()
|
||||||
|
|
||||||
|
global StratParDefaut
|
||||||
|
StratParDefaut=Strat.get()
|
||||||
|
|
||||||
|
global MaxIterations
|
||||||
|
MaxIterations=It.get()
|
||||||
|
|
||||||
Grille = gen_matrice_initiale()
|
Grille = gen_matrice_initiale()
|
||||||
|
|
||||||
for i in range(len(ListeStrategies)):
|
for i in range(len(ListeStrategies)):
|
||||||
|
@ -636,7 +761,11 @@ def affichage_strats_resultats_totaux():
|
||||||
plt.show()
|
plt.show()
|
||||||
plt.legend()
|
plt.legend()
|
||||||
|
|
||||||
|
#######################
|
||||||
|
# SCRIPT
|
||||||
|
#######################
|
||||||
|
|
||||||
|
Interface()
|
||||||
init_complete()
|
init_complete()
|
||||||
simulation()
|
simulation()
|
||||||
afficher_etat_dynamique()
|
afficher_etat_dynamique()
|
||||||
|
|
Loading…
Reference in New Issue