Update ARE-DYNAMIC.py
This commit is contained in:
parent
fbff925f67
commit
277716e692
|
@ -73,7 +73,7 @@ AffichageDynamique = True
|
||||||
ListePourcents = list()
|
ListePourcents = list()
|
||||||
|
|
||||||
#Couleurs des Stratégies
|
#Couleurs des Stratégies
|
||||||
CouleursStrat=['b','r','black','g','purple']
|
CouleursStrat=['b','r','black','g','purple','yellow']
|
||||||
|
|
||||||
# Vitesse de défilement des images dans l'affichage dynamique en millisecondes
|
# Vitesse de défilement des images dans l'affichage dynamique en millisecondes
|
||||||
Vitesse = 1
|
Vitesse = 1
|
||||||
|
@ -683,32 +683,35 @@ def simulation():
|
||||||
|
|
||||||
def matRecup(i, param):
|
def matRecup(i, param):
|
||||||
"""array*str-> array
|
"""array*str-> array
|
||||||
Récupère la matrice avec seulement le paramètre stratégie pour chaque joueur , à litération i voulue"""
|
Récupère la grille avec seulement la valeur de la clef "stratégie" pour chaque joueur , à litération i voulue"""
|
||||||
|
#on initialise la matrice résultat avec que des 0
|
||||||
matR = np.random.randint(0,1,(TailleGrilleX,TailleGrilleY))
|
matR = np.random.randint(0,1,(TailleGrilleX,TailleGrilleY))
|
||||||
|
|
||||||
|
|
||||||
|
#on récupère la grille à l'itération i voulue
|
||||||
matrice = HistoriqueGrilles[i]
|
matrice = HistoriqueGrilles[i]
|
||||||
|
|
||||||
|
#on parcourt toute la grille
|
||||||
for ligne in range (0,TailleGrilleX): #int ligne
|
for ligne in range (0,TailleGrilleX): #int ligne
|
||||||
for colonne in range (0, TailleGrilleY): #int colonne
|
for colonne in range (0, TailleGrilleY): #int colonne
|
||||||
matR[ligne][colonne]=matrice[ligne][colonne][param]
|
matR[ligne][colonne]=matrice[ligne][colonne][param] #on place à l'indice (ligne,colonne) de matR la valeur de la clef "stratégie" de la grille pour l'individu (ligne,colonne)
|
||||||
|
|
||||||
return matR
|
return matR
|
||||||
|
|
||||||
|
|
||||||
def afficher_strat_dynamique():
|
def afficher_strat_dynamique():
|
||||||
|
"""Affichage dynamique de l'évolution de la stratégie dans une fenêtre, avec des couleurs"""
|
||||||
fig=plt.figure()
|
fig=plt.figure()
|
||||||
fig.suptitle('Animation des stratégies')
|
fig.suptitle('Animation des stratégies')
|
||||||
|
|
||||||
cmap = mpl.colors.ListedColormap(["b","r" ,"black" ,"g" ,"purple", "yellow"])
|
cmap = mpl.colors.ListedColormap(["b","r" ,"black" ,"g" ,"purple", "yellow"])
|
||||||
|
|
||||||
bounds=[0,1,2,3,4,5]
|
bounds=[0,1,2,3,4,5,6]
|
||||||
norm=mpl.colors.BoundaryNorm(bounds, cmap.N)
|
norm=mpl.colors.BoundaryNorm(bounds, cmap.N)
|
||||||
img=plt.imshow(matRecup(0, 'strategie'), interpolation = "nearest", cmap = cmap , norm = norm)
|
img=plt.imshow(matRecup(0, 'strategie'), interpolation = "nearest", cmap = cmap , norm = norm)
|
||||||
|
|
||||||
cb=plt.colorbar(img , cmap=cmap , norm=norm , boundaries = bounds , ticks=bounds)
|
cb=plt.colorbar(img , cmap=cmap , norm=norm , boundaries = bounds , ticks=bounds)
|
||||||
labels = np.arange(0, 5, 1)
|
labels = np.arange(0, 6, 1)
|
||||||
cb.set_ticklabels(labels)
|
cb.set_ticklabels(labels)
|
||||||
|
|
||||||
def update(next_iteration,*args):
|
def update(next_iteration,*args):
|
||||||
|
@ -721,6 +724,7 @@ def afficher_strat_dynamique():
|
||||||
|
|
||||||
|
|
||||||
def afficher_etat_dynamique():
|
def afficher_etat_dynamique():
|
||||||
|
"""Affichage dynamique de l'évolution des états des individus dans une fenêtre, avec des couleurs"""
|
||||||
fig=plt.figure()
|
fig=plt.figure()
|
||||||
fig.suptitle('Animation des états')
|
fig.suptitle('Animation des états')
|
||||||
|
|
||||||
|
@ -757,28 +761,28 @@ def affichage_strats_resultats_totaux():
|
||||||
#nb_utilisations
|
#nb_utilisations
|
||||||
utilisateurs=list()
|
utilisateurs=list()
|
||||||
|
|
||||||
#uti[strat][iter] = nb
|
#utilisateurs[strat][iter] = nombre d'utilisateur dune stratégie à une itération
|
||||||
|
|
||||||
#iteration
|
#iteration
|
||||||
iteration=[]
|
iteration=[]
|
||||||
|
#on ajoute des 0 dans les listes gain() et stratUtili() autant qu'il y a de stratégies
|
||||||
for i in range(6):
|
for i in range(6):
|
||||||
gain.append(0)
|
gain.append(0)
|
||||||
stratUtili.append(0)
|
stratUtili.append(0)
|
||||||
|
|
||||||
for i in range(0,len(ListeStrategies)):
|
for i in range(0,len(ListeStrategies)): #on parcourt les stratégies
|
||||||
stratUtili[i]=StratsResultats[i][0]
|
stratUtili[i]=StratsResultats[i][0] #L'indice i de la liste stratUtili vaut le nombre total d'utilisations de la stratégie i
|
||||||
if StratsResultats[i][0]==0:
|
if StratsResultats[i][0]==0: #si la stratégie a été utilisée 0 fois
|
||||||
gain[i]
|
gain[i] #le gain ne change pas
|
||||||
else:
|
else:
|
||||||
gain[i]=StratsResultats[i][1]/StratsResultats[i][0]
|
gain[i]=StratsResultats[i][1]/StratsResultats[i][0] #Sinon le gain pour la stratégie i vaut le nombre d'années de prison pour une stratégie divisée par son utilisation (pour avoir une moyenne)
|
||||||
utilisateurs.append([])
|
utilisateurs.append([]) #on initialise une liste vide dans la liste utilisateurs afin de s'en servir juste après
|
||||||
|
|
||||||
for i in range(0,MaxIterations+1):
|
for i in range(0,MaxIterations+1): #on parcourt toutes les itréations
|
||||||
for j in range(0,len(ListeStrategies)):
|
for j in range(0,len(ListeStrategies)): #on parcourt toutes les stratégies
|
||||||
utilisateurs[j].append(StratsResultats[j][2][i][0])
|
utilisateurs[j].append(StratsResultats[j][2][i][0]) #on ajoute à lindice j de la liste utilisateurs le nombre d'utilisateurs d'une stratégie donnée j à l'itération i
|
||||||
|
|
||||||
iteration.append(i)
|
iteration.append(i) #on ajoute à la liste itération l'indice i
|
||||||
|
|
||||||
Strat=('0','1', '2','3' ,'4')
|
Strat=('0','1', '2','3' ,'4')
|
||||||
|
|
||||||
|
@ -810,7 +814,6 @@ def affichage_strats_resultats_totaux():
|
||||||
|
|
||||||
plt.show()
|
plt.show()
|
||||||
plt.legend()
|
plt.legend()
|
||||||
|
|
||||||
#######################
|
#######################
|
||||||
# SCRIPT
|
# SCRIPT
|
||||||
#######################
|
#######################
|
||||||
|
|
Loading…
Reference in New Issue