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:
"""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]