diff --git a/modules/mapa.py b/modules/mapa.py index 48de159..f1fea99 100644 --- a/modules/mapa.py +++ b/modules/mapa.py @@ -45,9 +45,15 @@ class Mapa: def posicao(self, posicao: tuple[int, int]) -> Agente: """devolver objecto que está na 'posicao'""" - # verificar limites - if posicao[0] > self.dimensao[0] or posicao[0] < 0: - raise ValueError("posicao fora dos limites") - if posicao[1] > self.dimensao[1] or posicao[1] < 0: - raise ValueError("posicao fora dos limites") - return self.mundo[posicao[0]][posicao[1]] + pos_x: int = posicao[0] + pos_y: int = posicao[1] + # aplicar wrap_around_map, desta forma tambem evitamos erros de dimensao + if pos_x < 0: + pos_x = self.dimensao[0] - 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]