Chiarimento costruttore Personaggi hw3bis es3

a
antonio_varlese (370 points)
2 4 7
asked Sep 5, 2019 in HW3bis by antonio_varlese (370 points)
closed Sep 7, 2019 by andrea.sterbini
Il costruttore di Personaggi prende "data" e "casate"; come detto in un precedente post, casate è un dizionario dove man mano vengono inserite le casate create, così da usare sempre le stesse istanze, richiesta che viene fatta anche per le istanze dei personaggi che però non riesco a soddisfare e qui viene il mio problema. (se ho ben compreso data è il dizionario con tutti i dati di personaggio x, preso dal json)(casate l'ho strutturato con per ogni casata "nome_str_della_casata": oggetto_Casata)

Nella consegna viene detto:"Gli attributi con un asterisco sono liste di riferimenti ad altre istanze di classe Personaggio, corrispondenti ai personaggi cui la voce del dizionario fa riferimento.", dunque nelle liste vanno inseriti elementi di tipo Personaggio, che devono essere però sempre gli stessi senza crearne di nuovi, cosa che non riesco a fare.

L'idea per riuscire a riutilizzare sempre le stesse istanze era di salvarmele dentro un dizionario come per le casate e pensavo di utilizzare allora lo stesso dizionario creando una chiave solo per i personaggi dove inserivo tutte le istanze già create; qui però sorgeva un problema (mi aiuto con un esempio pratico):

nel momento in cui sto creando "Aegon Targaryen", arrivo all'attributo killedBy; in questo caso è stato ucciso da "Gregor Clegane" , che non è stato ancora creato, dunque procedo col crearlo lasciando in sospeso la creazione di "Aegon Targaryen", però quando sto creando "Gregor Clegane", nell'attributo killed avrò "Aegon Targaryen", che io non ho ancora creato e dunque mi va in loop.

Di conseguenza non so come agire; ho capito male qualche parte della consegna? sbaglio ad utilizzare data o casate?
156 views
closed with note: answered

1 Answer

andrea.sterbini (160900 points)
448 849 1643
answered Sep 7, 2019 by andrea.sterbini (160,900 points)
Hai provato a eseguire due passate? Nella prima crei i Personaggi e nella seconda li colleghi?
a
antonio_varlese (370 points)
2 4 7
commented Sep 7, 2019 by antonio_varlese (370 points)
L'avevo varata come ipotesi, ma l'ho poi accantonata perchè pensavo fosse lento come procedimento. Ci proverò.