From f3a7493ff80233fd9136fca7f835eb34b6754ec9 Mon Sep 17 00:00:00 2001 From: Luis Rodrigues Date: Thu, 19 Mar 2026 21:33:18 +0000 Subject: [PATCH] =?UTF-8?q?implementar=20altera=C3=A7=C3=B5es=20da=20class?= =?UTF-8?q?e=20'Agente'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/gui.py | 4 ++-- modules/mapa.py | 42 +++++++++++++++++++++--------------------- 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/modules/gui.py b/modules/gui.py index 901149f..63c5f27 100644 --- a/modules/gui.py +++ b/modules/gui.py @@ -11,7 +11,7 @@ import modules.interaccoes as ModInteraccoes flags = 0 -def devolveCor(agente: Agente | None) -> tuple[int, int, int, int]: +def devolveCor(agente: Agente) -> tuple[int, int, int, int]: if type(agente) is None: return (0, 0, 0, 0) else: @@ -31,7 +31,7 @@ def devolveCor(agente: Agente | None) -> tuple[int, int, int, int]: def criarTabuleiro( surface: pg.Surface, dimensao_tabuleiro: tuple[int, int], - mapa: Mapa | None, + mapa: Mapa, ) -> None: dimensoes_surface_principal: tuple[int, int] = surface.get_size() max_altura: int = int((dimensoes_surface_principal[0] - 20) / dimensao_tabuleiro[0]) diff --git a/modules/mapa.py b/modules/mapa.py index 32f2d06..48de159 100644 --- a/modules/mapa.py +++ b/modules/mapa.py @@ -1,36 +1,37 @@ # funções associadas a operações com o Mapa -#import random -#from modules import agente +# import random +# from modules import agente from modules.agente import Agente -#import modules.estrategia as ModEstrategia +# import modules.estrategia as ModEstrategia class Mapa: - ''' definição de classe Mapa, que descreve um mapa com dimensão 'dimensao'. - a representação desse mapa fica guardado em 'mundo', que é uma lista de - listas, e cada posição guarda um objecto 'Agente' - ''' + """definição de classe Mapa, que descreve um mapa com dimensão 'dimensao'. + a representação desse mapa fica guardado em 'mundo', que é uma lista de + listas, e cada posição guarda um objecto 'Agente' + """ + dimensao: tuple[int, int] - mundo: list[list[Agente | None]] + mundo: list[list[Agente]] id_mapa: int - def __init__(self, dimensao: tuple[int, int], aleatorio: bool = False): + def __init__(self, dimensao: tuple[int, int]): self.mundo = [] self.dimensao = dimensao self.mundo = self.inicializar() self.id_mapa = id(self) def __str__(self): - return f'Dados Mapa ({self.id_mapa})\n \ - \tdimensao: {self.dimensao[0]} x {self.dimensao[1]}' + return f"Dados Mapa ({self.id_mapa})\n \ + \tdimensao: {self.dimensao[0]} x {self.dimensao[1]}" - def inicializar(self) -> list[list[Agente | None]]: + def inicializar(self) -> list[list[Agente]]: # inicializar mundo for _ in range(0, self.dimensao[0]): - mundo_tmp: list[Agente | None] = [] + mundo_tmp: list[Agente] = [] for _ in range(0, self.dimensao[1]): - mundo_tmp.append(None) + mundo_tmp.append(Agente()) self.mundo.append(mundo_tmp) return self.mundo @@ -39,15 +40,14 @@ class Mapa: m, n = 0, 0 for m in range(0, self.dimensao[0]): for n in range(0, self.dimensao[1]): - print(f'{self.mundo[m][n]}', end='') - print('') + print(f"{self.mundo[m][n]}", end="") + print("") - def posicao(self, posicao: tuple[int, int]) -> Agente | None: - ''' devolver objecto que está na 'posicao' - ''' + 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: - return None + raise ValueError("posicao fora dos limites") if posicao[1] > self.dimensao[1] or posicao[1] < 0: - return None + raise ValueError("posicao fora dos limites") return self.mundo[posicao[0]][posicao[1]]