diff --git a/ARE-DYNAMIC.py b/ARE-DYNAMIC.py index e0e20d5..057103f 100644 --- a/ARE-DYNAMIC.py +++ b/ARE-DYNAMIC.py @@ -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 #######################