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""" 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