In [ ]:
class IPM:
    def __init__():
        
    def main(self, agents):
        points = [[] for i in range(1000)] 
        for i in range(len(agents)):
            for j in range(len(agents)):
                if i != j:
                    points[i] = self.battle(agents[i], agents[j])
        return points
    
    def evolution(self, num_evol=1000):
        agents = [self.agent() for i in range(1000)]
        for evol in range(num_evol):
            points = self.main(agents)
            agents = self.evolution(agents, points)
        points = self.main(agents)
        agents = self.order(agents, points)
        return agents[:10]