from enum import Enum class Estrategia(Enum): Neutro = 0 Tit4Tat = 1 Vingativo = 2 Lunatico = 3 class Agente(): # traços de personalidade tracos_personalidade: dict[str, float] = { 'amabilidade': 0.0, 'retaliacao': 0.0, 'perdao': 0.0, 'coerencia': 0.0, 'memoria': 0.0, } pontuacao: int = 0 estrategia: Estrategia | None = None id_agente: int = 0 def __init__(self, estrategia: Estrategia): # definir estrategia aleatoriamente self.estrategia = Estrategia(estrategia) self.definirEstrategia() # 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.tracos_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