implementar alterações da classe 'Agente'
This commit is contained in:
@ -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]]
|
||||
|
||||
Reference in New Issue
Block a user