introduzir geração de mapas deterministicos

Na função 'popularMapa()' introduzimos o parametro 'semente' que aceita
um inteiro, que será usado para inicializar o gerador de pRNG. Desta
forma introduzimos um elemento deterministico na aleatoriedade da
função, gerando mapas com população determinada por esta 'semente'.
This commit is contained in:
2026-10-26 11:59:23 +00:00
parent c8b061e124
commit 190fe7a7c4
2 changed files with 6 additions and 2 deletions
+2 -1
View File
@@ -3,6 +3,7 @@ import modules.gui as Gui
from modules.mapa import Mapa from modules.mapa import Mapa
tamanho_mundo: tuple[int, int] = (8, 8) tamanho_mundo: tuple[int, int] = (8, 8)
semente: int | None = 42 # alterar semente para gerar mapas deterministicos
ModEstrategia.carregarFicheirosEstrategias("strategies/") ModEstrategia.carregarFicheirosEstrategias("strategies/")
@@ -10,7 +11,7 @@ ModEstrategia.carregarFicheirosEstrategias("strategies/")
mapa = Mapa(tamanho_mundo) mapa = Mapa(tamanho_mundo)
# popular mapa com Agentes # popular mapa com Agentes
Gui.popularMapa(mapa) Gui.popularMapa(mapa, semente)
# Gui.App(mapa) # Gui.App(mapa)
Gui.main(mapa, tamanho_mundo) Gui.main(mapa, tamanho_mundo)
+4 -1
View File
@@ -124,7 +124,10 @@ def criarMapa(janela_app: pg.Surface, frame: Frame, mapa: Mapa) -> None:
pg.draw.rect(janela_app, cor, quadrado, 0) pg.draw.rect(janela_app, cor, quadrado, 0)
def popularMapa(mapa: Mapa) -> None: def popularMapa(mapa: Mapa, semente: int | None = None) -> None:
if semente is None:
semente = 1
random.seed(semente)
for pos_y in range(mapa.dimensao[0]): for pos_y in range(mapa.dimensao[0]):
for pos_x in range(mapa.dimensao[1]): for pos_x in range(mapa.dimensao[1]):
# escolher uma estrategia aleatoria # escolher uma estrategia aleatoria