diff --git a/parties/8tours_et_globale b/parties/8tours_et_globale new file mode 100644 index 0000000..40bf5ca --- /dev/null +++ b/parties/8tours_et_globale @@ -0,0 +1,37 @@ +def partie8tours((x,y),Grille): #x, y sont les coordonnées du joueur + """ coord*Grille -> """ + for i in range (-1,2): + for j in range (-1,2): #(i,j) sont les coordonnées de l'adversaire + if (0 <= x+i and x+i < len(Grille)) and (0 <= y+j and y+j < len(Grille[0])) and (x,y)!=(0,0): + partie1v1 ((x,y), (x+i,y+j)) + +def partie_globale(Grille): + """ Grille -> Grille""" + + global HistoriqueGrilles + HistoriqueGrilles += [Grille] + + for i in range(len(Grille)): + for j in range(len(Grille)[0]): + partie8tours(i,j) + + # Changement des stratégies + copie_grille = numpy.copy(Grille) + + for x in range(len(copie_grille)): #on parcourt une copie de la grille pour avoir accès aux anciennes stratégies et non pas aux nouvelles adoptées + for y in range(len(copie_grille)[0]): #(x,y) : joueur dont on va modifier la stratégie, si besoin + min_prison = joueur["annees_de_prison"] + new_strat = joueur["strategie"] + for i in range (-1,2): + for j in range (-1,2): #(i,j) : adversaires autour de (x,y) + (i,j) = adversaire + if min_prison > adversaire["annees_de_prison"]: + new_strat = adversaire["strategie"] + global Grille + Grille[x][y]["strategie"] = new_strat #on modifie la stratégie du joueur dans la Grille et pas dans la copie + + # Réinitialisation du nb d'années de prison + for j in range(len(Grille)[0]): + Grille[i][j]['annees_de_prison'] = 0 + + return Grille