diff --git a/modules/agente.py b/modules/agente.py index fc7fb90..138a4b5 100644 --- a/modules/agente.py +++ b/modules/agente.py @@ -1,16 +1,9 @@ -from enum import Enum - - -class Estrategia(Enum): - Neutro = 0 - Tit4Tat = 1 - Vingativo = 2 - Lunatico = 3 +import modules.estrategia as ModEstrategia class Agente(): # traços de personalidade - tracos_personalidade: dict[str, float] = { + personalidade: dict[str, float] | None = { 'amabilidade': 0.0, 'retaliacao': 0.0, 'perdao': 0.0, @@ -18,13 +11,15 @@ class Agente(): 'memoria': 0.0, } pontuacao: int = 0 - estrategia: Estrategia | None = None + estrategia: str | None = None id_agente: int = 0 - def __init__(self, estrategia: Estrategia): + def __init__(self, estrategia: str): # definir estrategia aleatoriamente - self.estrategia = Estrategia(estrategia) - self.definirEstrategia() + 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 @@ -32,32 +27,5 @@ class Agente(): def __str__(self): return f'Dados Agente ({self.id_agente})\n \ \testrategia: {self.estrategia}\n \ - \t\tpersonalidade: {self.tracos_personalidade}\n \ + \t\tpersonalidade: {self.personalidade}\n \ \tpontução: {self.pontuacao}' - - def definirEstrategia(self): - match self.estrategia: - case Estrategia.Neutro: - self.tracos_personalidade['amabilidade'] = 0.5 - self.tracos_personalidade['retalicao'] = 0.5 - self.tracos_personalidade['perdao'] = 0.5 - self.tracos_personalidade['coerencia'] = 1.0 - self.tracos_personalidade['memoria'] = 0.5 - case Estrategia.Tit4Tat: - self.tracos_personalidade['amabilidade'] = 1.0 - self.tracos_personalidade['retalicao'] = 1.0 - self.tracos_personalidade['perdao'] = 1.0 - self.tracos_personalidade['coerencia'] = 1.0 - self.tracos_personalidade['memoria'] = 0.5 - case Estrategia.Vingativo: - self.tracos_personalidade['amabilidade'] = 0.0 - self.tracos_personalidade['retalicao'] = 1.0 - self.tracos_personalidade['perdao'] = 0.0 - self.tracos_personalidade['coerencia'] = 1.0 - self.tracos_personalidade['memoria'] = 0.5 - case Estrategia.Lunatico: - self.tracos_personalidade['amabilidade'] = 0.5 - self.tracos_personalidade['retalicao'] = 0.5 - self.tracos_personalidade['perdao'] = 0.5 - self.tracos_personalidade['coerencia'] = 0.5 - self.tracos_personalidade['memoria'] = 0.5