aplicar wrap_around no metodo posicao do objecto Mapa
This commit is contained in:
@ -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]
|
||||||
|
|||||||
Reference in New Issue
Block a user