Update ARE-DYNAMIC.py

This commit is contained in:
julianb0 2017-03-15 11:51:33 +01:00 committed by GitHub
parent c027872150
commit 6fd0d79676
1 changed files with 29 additions and 22 deletions

View File

@ -66,6 +66,9 @@ StratParDefaut = 0
# affichage dynamique # affichage dynamique
AffichageDynamique = True AffichageDynamique = True
# nécessaire pour matrice_init_pourcents_choisis()
ListePourcents = list()
""" """
Types: Types:
@ -118,15 +121,15 @@ def partie1v1(joueur, adversaire):
# avoue-avoue # avoue-avoue
ans_prison = (5, 5) ans_prison = (5, 5)
(StratsResultats[joueur["strategie"]])[0] += 1 StratsResultats[joueur["strategie"]][0] += 1
(StratsResultats[joueur["strategie"]])[1] += ans_prison[0] StratsResultats[joueur["strategie"]][1] += ans_prison[0]
(StratsResultats[adversaire["strategie"]])[0] += 1 StratsResultats[adversaire["strategie"]][0] += 1
(StratsResultats[adversaire["strategie"]])[1] += ans_prison[1] StratsResultats[adversaire["strategie"]][1] += ans_prison[1]
(StratsResultats[joueur["strategie"]])[2][Iteration][1] += 1 StratsResultats[joueur["strategie"]][2][Iteration][1] += 1
(StratsResultats[joueur["strategie"]])[2][Iteration][2] += ans_prisons[0] StratsResultats[joueur["strategie"]][2][Iteration][2] += ans_prison[0]
(StratsResultats[adversaire["strategie"]])[2][Iteration][1] += 1 StratsResultats[adversaire["strategie"]][2][Iteration][1] += 1
(StratsResultats[adversaire["strategie"]])[2][Iteration][2] += ans_prisons[0] StratsResultats[adversaire["strategie"]][2][Iteration][2] += ans_prison[0]
joueur["annees_de_prison"] += ans_prison[0] joueur["annees_de_prison"] += ans_prison[0]
adversaire["annees_de_prison"] += ans_prison[1] adversaire["annees_de_prison"] += ans_prison[1]
@ -295,28 +298,26 @@ def matrice_init_equitable():
return matrice return matrice
list_pourcent = []
def matrice_init_pourcents_choisis(): def matrice_init_pourcents_choisis():
""" """
list[float] -> array list[float] -> array
list_pourcent contient des float de 0.0 à 1.0. ListePourcents contient des float de 0.0 à 1.0.
Crée la matrice des joueurs tel que le pourcentage de Crée la matrice des joueurs tel que le pourcentage de
chaque stratégie est choisi. Les états initiaux sont chaque stratégie est choisi. Les états initiaux sont
choisis aléatoirement. choisis aléatoirement.
""" """
if (len(list_pourcent) != len(ListeStrategies)): if (len(ListePourcents) != len(ListeStrategies)):
print("Erreur: matrice_init_pourcents_choisis: liste_pourcent est de taille incorrecte!") print("Erreur: matrice_init_pourcents_choisis: liste_pourcent est de taille incorrecte!")
matrice_strat = np.full((TailleGrilleX, TailleGrilleY), -1, dtype=int) matrice_strat = np.full((TailleGrilleX, TailleGrilleY), -1, dtype=int)
list_nb_joueurs_de_chaque = list() list_nb_joueurs_de_chaque = list()
for i in range(len(list_pourcent)): for i in range(len(ListePourcents)):
list_nb_joueurs_de_chaque.append((TailleGrilleX*TailleGrilleY)*list_pourcent[i]) list_nb_joueurs_de_chaque.append((TailleGrilleX*TailleGrilleY)*ListePourcents[i])
places_vides = TailleGrilleX*TailleGrilleY places_vides = TailleGrilleX*TailleGrilleY
for e in range(len(list_pourcent)): for e in range(len(ListePourcents)):
count_joueurs = 0 count_joueurs = 0
while count_joueurs <= list_nb_joueurs_de_chaque[e]: while count_joueurs <= list_nb_joueurs_de_chaque[e]:
@ -333,7 +334,7 @@ def matrice_init_pourcents_choisis():
for i in range(TailleGrilleY): #on vérifie qu'il n'y a pas d'index vides for i in range(TailleGrilleY): #on vérifie qu'il n'y a pas d'index vides
for j in range(TailleGrilleX): #si oui, on le rempli avec une strat aléatoire for j in range(TailleGrilleX): #si oui, on le rempli avec une strat aléatoire
if matrice_strat[i][j] == 0: if matrice_strat[i][j] == 0:
matrice_strat[i][j] = random.randint(0, len(list_pourcent)) matrice_strat[i][j] = random.randint(0, len(ListePourcents))
matrice = matrice_init_vide() matrice = matrice_init_vide()
@ -439,11 +440,16 @@ def init_complete():
global Grille global Grille
global StratsResultats global StratsResultats
for i in range(len(ListeStrategies)):
StratsResultats.append([0, 0, list()])
Grille = gen_matrice_initiale() Grille = gen_matrice_initiale()
for i in range(len(ListeStrategies)):
StratsResultats.append([0, 0, [ [0, 0, 0] ]])
for x in range(TailleGrilleX):
for y in range(TailleGrilleY):
if Grille[x][y]["strategie"] == i:
StratsResultats[i][2][0][0] += 1
return Grille
def simulation(): def simulation():
global Iteration global Iteration
@ -465,11 +471,13 @@ def simulation():
for x in range(TailleGrilleX): for x in range(TailleGrilleX):
for y in range(TailleGrilleY): for y in range(TailleGrilleY):
if Grille[x][y]["strategie"] == i: if Grille[x][y]["strategie"] == i:
StratsResultats[i][2][Iteration][0] += 1 StratsResultats[i][2][Iteration][0] += 1
return Grille return Grille
init_complete()
""" """
def _ext(M): def _ext(M):
K = np.ndarray((TailleGrilleX, TailleGrilleY)) K = np.ndarray((TailleGrilleX, TailleGrilleY))
@ -479,8 +487,7 @@ def _ext(M):
K[x][y] = M[x][y]["strategie"] K[x][y] = M[x][y]["strategie"]
return K return K
print(_ext(simulation()))
""" """
init_complete()
simulation()