implementar alterações da classe 'Agente'
This commit is contained in:
@ -11,7 +11,7 @@ import modules.interaccoes as ModInteraccoes
|
|||||||
flags = 0
|
flags = 0
|
||||||
|
|
||||||
|
|
||||||
def devolveCor(agente: Agente | None) -> tuple[int, int, int, int]:
|
def devolveCor(agente: Agente) -> tuple[int, int, int, int]:
|
||||||
if type(agente) is None:
|
if type(agente) is None:
|
||||||
return (0, 0, 0, 0)
|
return (0, 0, 0, 0)
|
||||||
else:
|
else:
|
||||||
@ -31,7 +31,7 @@ def devolveCor(agente: Agente | None) -> tuple[int, int, int, int]:
|
|||||||
def criarTabuleiro(
|
def criarTabuleiro(
|
||||||
surface: pg.Surface,
|
surface: pg.Surface,
|
||||||
dimensao_tabuleiro: tuple[int, int],
|
dimensao_tabuleiro: tuple[int, int],
|
||||||
mapa: Mapa | None,
|
mapa: Mapa,
|
||||||
) -> None:
|
) -> None:
|
||||||
dimensoes_surface_principal: tuple[int, int] = surface.get_size()
|
dimensoes_surface_principal: tuple[int, int] = surface.get_size()
|
||||||
max_altura: int = int((dimensoes_surface_principal[0] - 20) / dimensao_tabuleiro[0])
|
max_altura: int = int((dimensoes_surface_principal[0] - 20) / dimensao_tabuleiro[0])
|
||||||
|
|||||||
@ -7,30 +7,31 @@ from modules.agente import Agente
|
|||||||
|
|
||||||
|
|
||||||
class Mapa:
|
class Mapa:
|
||||||
''' definição de classe Mapa, que descreve um mapa com dimensão 'dimensao'.
|
"""definição de classe Mapa, que descreve um mapa com dimensão 'dimensao'.
|
||||||
a representação desse mapa fica guardado em 'mundo', que é uma lista de
|
a representação desse mapa fica guardado em 'mundo', que é uma lista de
|
||||||
listas, e cada posição guarda um objecto 'Agente'
|
listas, e cada posição guarda um objecto 'Agente'
|
||||||
'''
|
"""
|
||||||
|
|
||||||
dimensao: tuple[int, int]
|
dimensao: tuple[int, int]
|
||||||
mundo: list[list[Agente | None]]
|
mundo: list[list[Agente]]
|
||||||
id_mapa: int
|
id_mapa: int
|
||||||
|
|
||||||
def __init__(self, dimensao: tuple[int, int], aleatorio: bool = False):
|
def __init__(self, dimensao: tuple[int, int]):
|
||||||
self.mundo = []
|
self.mundo = []
|
||||||
self.dimensao = dimensao
|
self.dimensao = dimensao
|
||||||
self.mundo = self.inicializar()
|
self.mundo = self.inicializar()
|
||||||
self.id_mapa = id(self)
|
self.id_mapa = id(self)
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return f'Dados Mapa ({self.id_mapa})\n \
|
return f"Dados Mapa ({self.id_mapa})\n \
|
||||||
\tdimensao: {self.dimensao[0]} x {self.dimensao[1]}'
|
\tdimensao: {self.dimensao[0]} x {self.dimensao[1]}"
|
||||||
|
|
||||||
def inicializar(self) -> list[list[Agente | None]]:
|
def inicializar(self) -> list[list[Agente]]:
|
||||||
# inicializar mundo
|
# inicializar mundo
|
||||||
for _ in range(0, self.dimensao[0]):
|
for _ in range(0, self.dimensao[0]):
|
||||||
mundo_tmp: list[Agente | None] = []
|
mundo_tmp: list[Agente] = []
|
||||||
for _ in range(0, self.dimensao[1]):
|
for _ in range(0, self.dimensao[1]):
|
||||||
mundo_tmp.append(None)
|
mundo_tmp.append(Agente())
|
||||||
self.mundo.append(mundo_tmp)
|
self.mundo.append(mundo_tmp)
|
||||||
return self.mundo
|
return self.mundo
|
||||||
|
|
||||||
@ -39,15 +40,14 @@ class Mapa:
|
|||||||
m, n = 0, 0
|
m, n = 0, 0
|
||||||
for m in range(0, self.dimensao[0]):
|
for m in range(0, self.dimensao[0]):
|
||||||
for n in range(0, self.dimensao[1]):
|
for n in range(0, self.dimensao[1]):
|
||||||
print(f'{self.mundo[m][n]}', end='')
|
print(f"{self.mundo[m][n]}", end="")
|
||||||
print('')
|
print("")
|
||||||
|
|
||||||
def posicao(self, posicao: tuple[int, int]) -> Agente | None:
|
def posicao(self, posicao: tuple[int, int]) -> Agente:
|
||||||
''' devolver objecto que está na 'posicao'
|
"""devolver objecto que está na 'posicao'"""
|
||||||
'''
|
|
||||||
# verificar limites
|
# verificar limites
|
||||||
if posicao[0] > self.dimensao[0] or posicao[0] < 0:
|
if posicao[0] > self.dimensao[0] or posicao[0] < 0:
|
||||||
return None
|
raise ValueError("posicao fora dos limites")
|
||||||
if posicao[1] > self.dimensao[1] or posicao[1] < 0:
|
if posicao[1] > self.dimensao[1] or posicao[1] < 0:
|
||||||
return None
|
raise ValueError("posicao fora dos limites")
|
||||||
return self.mundo[posicao[0]][posicao[1]]
|
return self.mundo[posicao[0]][posicao[1]]
|
||||||
|
|||||||
Reference in New Issue
Block a user