Se anche le sezioni fossero ad allocazione dinamica?
Riporto gli appunti e le considerazioni fatte nel processo di lavoro senza alterare l’autenticità del diario.
Ho reso l’inizializzazione del comportamento quasi totalmente dinamica. Ora generaAttributi è modificato così:
class Comportamento:
# attributi relativi al comportamento hanno lachiave che inizia per c.
# es. cAttacco, cDurata.
def __init__(self, dizionario, idComportamento):
self.idComportamento = idComportamento
self.lista_tuples = list(dizionario.items())
self.generaAttributi()
self.eventiSonori = []
#self.creaEventoSonoro()
def generaAttributi(self):
# Itera su tutta la lista di tuple, partendo dall'indice 0
for i, (chiave, valore) in enumerate(self.lista_tuples):
# Assegna sempre dinamicamente l'attributo
setattr(self, chiave, valore)
# Crea dinamicamente un attributo "pfield{i}" solo se i >= 3
if i >= 3:
setattr(self, f"pfield{i}", [])
In Sezione l’attacco del comportamento viene aggiornato in funzione dell’attacco della sezione
def genera_comportamenti(self):
for index, c in enumerate(self.dizionario['comportamenti']):
c['cAttacco'] += self.sAttacco
self.comportamenti.append(Comportamento(c,index+1))
E questa è la versione del reporitory allo stato di lavoro del diario.