113 lines
2.7 KiB
Python
113 lines
2.7 KiB
Python
|
import matplotlib.pyplot as plt; plt.rcdefaults()
|
||
|
import numpy as np
|
||
|
import matplotlib.pyplot as plt
|
||
|
|
||
|
|
||
|
TailleGrilleX = 15
|
||
|
TailleGrilleY = 15
|
||
|
GrilleInitiale = 0
|
||
|
HistoriqueGrille = list()
|
||
|
StratsResultats = list()
|
||
|
|
||
|
|
||
|
def recup_mat(matrice, param):
|
||
|
""" array*str-> array
|
||
|
Récupère la matrice avec seulement le paramètre (état,strat,années de prison) voulu afin de pouvoir avoir les stats plus facilement"""
|
||
|
|
||
|
|
||
|
matR = np.random.randint(0,1,TailleGrilleX,TailleGrilleY)
|
||
|
|
||
|
for ligne in range (0,TailleGrilleX): #int ligne
|
||
|
for colonne in range (0, TailleGrilleY): #int colonne
|
||
|
for p in matrice[ligne,colonne]:
|
||
|
if p==param:
|
||
|
matR[ligne,colonne]=dict[param]
|
||
|
return matR
|
||
|
|
||
|
def bar_chart():
|
||
|
"""array->graph
|
||
|
Retourne le diagramme en baton qui met en évidence le nombre d'années de prison en fonction de la stratégie. et
|
||
|
celui qui met en évidence la proportion des stratégies.
|
||
|
Ils sont mis à jour à chaque fos que tous les éléments de la grille ont fait leur 8 parties locales"""
|
||
|
|
||
|
matStrat=recup_mat(matrice,'strategie')
|
||
|
matGain=recup_mat(matrice,'annees_de_prison')
|
||
|
|
||
|
#initialisation des paramètres
|
||
|
|
||
|
strat0=0
|
||
|
|
||
|
strat1=0
|
||
|
|
||
|
strat2=0
|
||
|
|
||
|
strat3=0
|
||
|
|
||
|
strat4=0
|
||
|
|
||
|
strat5=0
|
||
|
|
||
|
gain0=0
|
||
|
|
||
|
gain1=0
|
||
|
|
||
|
gain2=0
|
||
|
|
||
|
gain3=0
|
||
|
|
||
|
gain4=0
|
||
|
|
||
|
gain5=0
|
||
|
|
||
|
for ligne in range (0,TailleGrilleX):
|
||
|
for colonne in range(0, TailleGrilleY):
|
||
|
|
||
|
if matStrat[ligne,colonne]==0:
|
||
|
strat0=strat0+1
|
||
|
gain0=gain0+matGain[ligne,colonne]
|
||
|
|
||
|
elif matStrat[ligne,colonne]==1:
|
||
|
strat1=strat1+1
|
||
|
gain1=gain1+matGain[ligne,colonne]
|
||
|
|
||
|
elif matStrat[ligne,colonne]==2:
|
||
|
strat2=strat2+1
|
||
|
gain2=gain2+matGain[ligne,colonne]
|
||
|
|
||
|
elif matStrat[ligne,colonne]==3:
|
||
|
strat3=strat3+1
|
||
|
gain3=gain3+matGain[ligne,colonne]
|
||
|
|
||
|
elif matStrat[ligne,colonne]==4:
|
||
|
strat4=strat4+1
|
||
|
gain4=gain4+matGain[ligne,colonne]
|
||
|
else :
|
||
|
strat5=strat5+1
|
||
|
gain5=gain5+matGain[ligne,colonne]
|
||
|
|
||
|
Strat=('1','2', '3','4' ,'5','6')
|
||
|
|
||
|
x_pos = np.arange(len(Strat))
|
||
|
|
||
|
|
||
|
gain=[gain0,gain1,gain2,gain3,gain4,gain5]
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
plt.bar(x_pos, gain, align='center', color='b' )
|
||
|
plt.xlabel("Stratégies")
|
||
|
plt.ylabel("Nombre d'années de prison")
|
||
|
|
||
|
plt.xticks(x_pos,Strat)
|
||
|
|
||
|
plt.show()
|
||
|
return matGain
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|