aplicar wrap_around no metodo posicao do objecto Mapa

This commit is contained in:
2026-03-20 11:42:39 +00:00
parent 060a71ed3a
commit 5df0bf0e49

View File

@ -45,9 +45,15 @@ class Mapa:
def posicao(self, posicao: tuple[int, int]) -> Agente: def posicao(self, posicao: tuple[int, int]) -> Agente:
"""devolver objecto que está na 'posicao'""" """devolver objecto que está na 'posicao'"""
# verificar limites pos_x: int = posicao[0]
if posicao[0] > self.dimensao[0] or posicao[0] < 0: pos_y: int = posicao[1]
raise ValueError("posicao fora dos limites") # aplicar wrap_around_map, desta forma tambem evitamos erros de dimensao
if posicao[1] > self.dimensao[1] or posicao[1] < 0: if pos_x < 0:
raise ValueError("posicao fora dos limites") pos_x = self.dimensao[0] - 1
return self.mundo[posicao[0]][posicao[1]] if pos_x >= self.dimensao[0]:
pos_x = 0
if pos_y < 0:
pos_y = self.dimensao[1] - 1
if pos_y >= self.dimensao[1]:
pos_y = 0
return self.mundo[pos_x][pos_y]