carregar personalidade a partir da estratégia definida
This commit is contained in:
@ -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
|
|
||||||
|
|||||||
Reference in New Issue
Block a user