agora a tecla c (change) permite alterar o tamanho do mapa. para fazer reset, usa-se agora a tecla 'r' (reset)
38 lines
1.1 KiB
Python
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, float] = {}
|
|
|
|
|
|
def carregarFicheirosEstrategias(pasta_estrategias: str) -> None:
|
|
lista_ficheiros: list = 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:
|
|
return list(lista_estrategias.keys())
|
|
|
|
|
|
def devolvePersonalidade(nome_estrategia: str | None) -> dict[str, float]:
|
|
if isinstance(nome_estrategia, NoneType):
|
|
raise ValueError("estratégia {nome_estrategia=} não é válida")
|
|
personalidade: dict[str, float] = lista_estrategias.get(nome_estrategia)
|
|
return personalidade
|