# from types import NoneType from types import NoneType import modules.estrategia as ModEstrategia class Agente: # traços de personalidade personalidade: dict[str, float] | None = { "amabilidade": 0.0, "retaliacao": 0.0, "perdao": 0.0, "coerencia": 0.0, "memoria": 0.0, } pontuacao: int = 0 estrategia: str | None = None id_agente: int = 0 banco_memoria: dict[int, list] = {} def __init__(self, estrategia: str): # definir estrategia aleatoriamente self.estrategia = estrategia # definir personalidade com base na estratégia self.personalidade = ModEstrategia.devolvePersonalidade(self.estrategia) # identificador de agente self.id_agente = id(self) self.pontuacao = 0 def __str__(self): return f"Dados Agente ({self.id_agente})\n \ \testrategia: {self.estrategia}\n \ \t\tpersonalidade: {self.personalidade}\n \ \tpontução: {self.pontuacao}" def amabilidade(self) -> float | None: if isinstance(self.personalidade, NoneType): return None return self.personalidade["amabilidade"] def retaliacao(self) -> float | None: if isinstance(self.personalidade, NoneType): return None return self.personalidade["retaliacao"] def perdao(self) -> float | None: if isinstance(self.personalidade, NoneType): return None return self.personalidade["perdao"] def coerencia(self) -> float | None: if isinstance(self.personalidade, NoneType): return None return self.personalidade["coerencia"] def memoria(self) -> float | None: if isinstance(self.personalidade, NoneType): return None return self.personalidade["memoria"]