# 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 = "" id_agente: int = 0 # banco de memoria banco_memoria: dict[int, list[int]] = {} posicao: tuple[int, int] def __init__(self, estrategia: str = "", posicao: tuple[int, int] = (0, 0)): # 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 self.posicao = posicao 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"]