40 lines
1.2 KiB
Python
40 lines
1.2 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]):
|
|
self.mundo = []
|
|
self.dimensao = dimensao
|
|
self.mundo = self.inicializar()
|
|
|
|
def inicializar(self) -> list:
|
|
# inicializar mundo
|
|
for _ in range(0, self.dimensao[0]):
|
|
mundo_tmp: list = []
|
|
for _ in range(0, self.dimensao[1]):
|
|
mundo_tmp.append(Agente())
|
|
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]]
|