Files
game_theory_of_life/modules/estrategia.py

38 lines
1.1 KiB
Python

# definição de classe Estrategia
from enum import Enum
import json
import os
from types import NoneType
class TiposEstrategia(Enum):
ALEATORIO = 0
NEUTRO = 1
TIT4TAT = 2
VINGATIVO = 3
LUNATICO = 4
# lista de estratégias. cada entrada é um dicionário com nome de estratégia
# e respectivos tracos de personalidade
lista_estrategias: dict[str, dict[str, float]] = {}
def carregarFicheirosEstrategias(pasta_estrategias: str) -> None:
lista_ficheiros: list[str] = os.listdir(pasta_estrategias)
for ficheiro_json in lista_ficheiros:
with open(f"{pasta_estrategias}/{ficheiro_json}", "r") as ficheiro:
dados = json.load(ficheiro)
lista_estrategias.update(dados)
def listaNomesEstrategias() -> list[str]:
return list(lista_estrategias.keys())
def devolvePersonalidade(nome_estrategia: str | None) -> dict[str, float] | None:
if isinstance(nome_estrategia, NoneType):
raise ValueError("estratégia {nome_estrategia=} não é válida")
personalidade: dict[str, float] | None = lista_estrategias.get(nome_estrategia)
return personalidade