From 5df0bf0e4999c39c81f734a8ea0f2e21e7c284cc Mon Sep 17 00:00:00 2001 From: Luis Rodrigues Date: Fri, 20 Mar 2026 11:42:39 +0000 Subject: [PATCH] aplicar wrap_around no metodo posicao do objecto Mapa --- modules/mapa.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) 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]