carregar personalidade a partir da estratégia definida

This commit is contained in:
2024-09-13 02:32:21 +01:00
parent 95ee241b41
commit b0164a336f

View File

@ -1,16 +1,9 @@
from enum import Enum import modules.estrategia as ModEstrategia
class Estrategia(Enum):
Neutro = 0
Tit4Tat = 1
Vingativo = 2
Lunatico = 3
class Agente(): class Agente():
# traços de personalidade # traços de personalidade
tracos_personalidade: dict[str, float] = { personalidade: dict[str, float] | None = {
'amabilidade': 0.0, 'amabilidade': 0.0,
'retaliacao': 0.0, 'retaliacao': 0.0,
'perdao': 0.0, 'perdao': 0.0,
@ -18,13 +11,15 @@ class Agente():
'memoria': 0.0, 'memoria': 0.0,
} }
pontuacao: int = 0 pontuacao: int = 0
estrategia: Estrategia | None = None estrategia: str | None = None
id_agente: int = 0 id_agente: int = 0
def __init__(self, estrategia: Estrategia): def __init__(self, estrategia: str):
# definir estrategia aleatoriamente # definir estrategia aleatoriamente
self.estrategia = Estrategia(estrategia) self.estrategia = estrategia
self.definirEstrategia() # definir personalidade com base na estratégia
self.personalidade = ModEstrategia.devolvePersonalidade(
self.estrategia)
# identificador de agente # identificador de agente
self.id_agente = id(self) self.id_agente = id(self)
self.pontuacao = 0 self.pontuacao = 0
@ -32,32 +27,5 @@ class Agente():
def __str__(self): def __str__(self):
return f'Dados Agente ({self.id_agente})\n \ return f'Dados Agente ({self.id_agente})\n \
\testrategia: {self.estrategia}\n \ \testrategia: {self.estrategia}\n \
\t\tpersonalidade: {self.tracos_personalidade}\n \ \t\tpersonalidade: {self.personalidade}\n \
\tpontução: {self.pontuacao}' \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