Update ARE-DYNAMIC.py
This commit is contained in:
parent
fbff925f67
commit
277716e692
|
@ -73,7 +73,7 @@ AffichageDynamique = True
|
|||
ListePourcents = list()
|
||||
|
||||
#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 = 1
|
||||
|
@ -683,32 +683,35 @@ def simulation():
|
|||
|
||||
def matRecup(i, param):
|
||||
"""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))
|
||||
|
||||
|
||||
#on récupère la grille à l'itération i voulue
|
||||
matrice = HistoriqueGrilles[i]
|
||||
|
||||
|
||||
#on parcourt toute la grille
|
||||
for ligne in range (0,TailleGrilleX): #int ligne
|
||||
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
|
||||
|
||||
|
||||
def afficher_strat_dynamique():
|
||||
fig=plt.figure()
|
||||
"""Affichage dynamique de l'évolution de la stratégie dans une fenêtre, avec des couleurs"""
|
||||
fig=plt.figure()
|
||||
fig.suptitle('Animation des stratégies')
|
||||
|
||||
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)
|
||||
img=plt.imshow(matRecup(0, 'strategie'), interpolation = "nearest", cmap = cmap , norm = norm)
|
||||
|
||||
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)
|
||||
|
||||
def update(next_iteration,*args):
|
||||
|
@ -721,6 +724,7 @@ def afficher_strat_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.suptitle('Animation des états')
|
||||
|
||||
|
@ -757,28 +761,28 @@ def affichage_strats_resultats_totaux():
|
|||
#nb_utilisations
|
||||
utilisateurs=list()
|
||||
|
||||
#uti[strat][iter] = nb
|
||||
#utilisateurs[strat][iter] = nombre d'utilisateur dune stratégie à une itération
|
||||
|
||||
#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):
|
||||
gain.append(0)
|
||||
stratUtili.append(0)
|
||||
|
||||
for i in range(0,len(ListeStrategies)):
|
||||
stratUtili[i]=StratsResultats[i][0]
|
||||
if StratsResultats[i][0]==0:
|
||||
gain[i]
|
||||
for i in range(0,len(ListeStrategies)): #on parcourt les stratégies
|
||||
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: #si la stratégie a été utilisée 0 fois
|
||||
gain[i] #le gain ne change pas
|
||||
else:
|
||||
gain[i]=StratsResultats[i][1]/StratsResultats[i][0]
|
||||
utilisateurs.append([])
|
||||
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([]) #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 j in range(0,len(ListeStrategies)):
|
||||
utilisateurs[j].append(StratsResultats[j][2][i][0])
|
||||
for i in range(0,MaxIterations+1): #on parcourt toutes les itréations
|
||||
for j in range(0,len(ListeStrategies)): #on parcourt toutes les stratégies
|
||||
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')
|
||||
|
||||
|
@ -810,7 +814,6 @@ def affichage_strats_resultats_totaux():
|
|||
|
||||
plt.show()
|
||||
plt.legend()
|
||||
|
||||
#######################
|
||||
# SCRIPT
|
||||
#######################
|
||||
|
|
Loading…
Reference in New Issue