import matplotlib.pyplot as plt; plt.rcdefaults() import numpy as np import matplotlib.pyplot as plt from pylab import * TailleGrilleX = 15 TailleGrilleY = 15 GrilleInitiale = 0 HistoriqueGrille = list() StratsResultats = list() ListeStrategies = list() def simulation(): """->Grille""" iterations = 0 while iterations <= MaxIterations : partie_globale() pass fig=plt.figure() fig.suptitle('Animation des stratégies') cmap = mpl.colors.ListedColormap(["black","green","blue","red"]) bounds=[0,1,2,3] norm=mpl.colors.BoundaryNorm(bounds, cmap.N) img=plt.imshow(HistoriqueGrille[0], interpolation = "nearest", cmap = cmap , norm = norm) def update(next_iteration,*args): img.set_array(HistoriqueGrille[next_iteration]) return img, anim = animation.FuncAnimation(fig, update, frames=range(4), interval=1000, blit=True) plt.show() def matStratIté(i): array*str-> array """Récupère la matrice avec seulement le paramètre stratégie pour chaque joueur , à litération i voulue""" matR = np.random.randint(0,1,TailleGrilleX,TailleGrilleY) matrice = HistoriqueGrille[i] for ligne in range (0,TailleGrilleX): #int ligne for colonne in range (0, TailleGrilleY): #int colonne matStrat[ligne][colonne]=matrice[ligne][colonne]['strategie'] return matStrat def bar_chart(): """array->graph Retourne les diagrammes en baton qui mettent en évidence le nombre d'années de prison en fonction de la stratégie et le nombre d'utilisation de chaque stratégies """ #initialisation des paramètres #list gain gain=[] #list strat stratUtili=[] for i in range(5): gain.append(0) stratUtili.append(0) for i in range(0,len(ListeStrategies)): stratUtili[i]=StratsResultats[i]['nb_utilisations'] gain[i]=StratsResultats[i]['total_ans_prisons'] Strat=('1','2', '3','4' ,'5') x_pos = np.arange(len(Strat)) plt.subplot(221) plt.bar(x_pos, gain, align='center', color='b' ) plt.xlabel("Stratégies") plt.ylabel("Nombre d'années de prison") plt.subplot(222) plt.bar(x_pos, stratUtili, align='center' , color='r') plt.xlabel("Stratégies") plt.ylabel("NB individus ayant adopté stratégie") plt.xticks(x_pos,Strat) plt.show()