Files
game_theory_of_life/modules/mapa.py
2024-09-10 17:38:42 +01:00

44 lines
1.4 KiB
Python

# funções associadas a operações com o Mapa
from modules import agente
from modules.agente import Agente
class Mapa:
dimensao: tuple[int, int]
mundo: list
def __init__(self, dimensao: tuple[int, int], aleatorio: bool = False):
self.mundo = []
self.dimensao = dimensao
self.mundo = self.inicializar(aleatorio=aleatorio)
self.id_mapa = id(self)
def __str__(self):
return f'Dados Mapa ({self.id_mapa})\n\tdimensao: {self.dimensao[0]} x {self.dimensao[1]}'
def inicializar(self, aleatorio: bool = False) -> list:
# inicializar mundo
for _ in range(0, self.dimensao[0]):
mundo_tmp: list = []
for _ in range(0, self.dimensao[1]):
mundo_tmp.append(Agente(aleatorio))
self.mundo.append(mundo_tmp)
return self.mundo
def mostrar(self) -> None:
# mostrar mundo
m, n = 0, 0
for m in range(0, self.dimensao[0]):
for n in range(0, self.dimensao[1]):
print(f'{self.mundo[m][n].pontuacao:2} ', end='')
print('')
def posicao(self, posicao: tuple[int, int]) -> Agente | None:
# verificar limites
if posicao[0] > self.dimensao[0] or posicao[0] < 0:
return None
if posicao[1] > self.dimensao[1] or posicao[1] < 0:
return None
return self.mundo[posicao[0]][posicao[1]]