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:
@@ -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
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user