[CHIARIMENTO] HW3bis come implementare Personaggio.parentela e Personaggio.famiglia_allargata

andrea.sterbini (160900 points)
448 849 1643
asked Mar 12, 2019 in HW3bis by andrea.sterbini (160,900 points)
edited Mar 16, 2019 by andrea.sterbini

Come già segnalato da alcuni di voi, non è chiaro come implementare i metodi Personaggio.parentela e Personaggio.famiglia_allargata

La descrizione indica che bisogna calcolare se esiste una parentela diretta (madre, figlio, cugino eccetera), e se esiste una parentela alla lontana (appartenenti alla stessa casata) nel cui caso bisogna tornare "lontana", e che se due personaggi non hanno casate in comune bisogna tornare "nessuna".
L'ambiguità nasce quando ESISTE una parentela diretta E CONTEMPORANEAMENTE i due personaggi NON hanno casate in comune. Cosa bisogna tornare? la parentela diretta OPPURE il valore "nessuna"? Purtroppo nei file json esistono alcuni personaggi che non hanno casata e che generano questo tipo di problema.
Ne ho discusso con Spognardi ed abbiamo deciso di considerare come valida la specifica che riduce al minimo gli aggiornamenti dei dati e dei test in modo da non creare problemi a chi ha già consegnato esercizi che superano i test esistenti (e magari hanno anche fatto l'esame).

QUINDI, PER EVITARE DI AGGIORNARE TUTTO, ESEGUITE I CONTROLLI IN QUESTO ORDINE (anche se capisco che concettualmente non è la scelta più condivisibile):

  1. SE I DUE PERSONAGGI NON HANNO ALCUNA CASATA IN COMUNE TORNATE "nessuna"
  2. SE ESISTE UNA PARENTELA DIRETTA TORNATE IL CORRISPONDENTE VALORE
  3. ALTRIMENTI I DUE PERSONAGGI HANNO ALMENO UNA CASATA IN COMUNE, QUINDI TORNATE "lontana"

Questo dovrebbe farvi superare tutti i test.

EDIT: per il metodo Personaggio.famiglia_allargata invece dovete aggiungere anche i parenti diretti della persona e dei suoi SO.

Per ulteriori chiarimenti COMMENTATE QUA SOTTO invece di aprire nuove questions.

292 views

1 Answer

1
1841421 (970 points)
0 30 41
answered Mar 15, 2019 by 1841421 (970 points)
Salve,

Ho rieseguito i test e ancora non capisco una cosa.

Secondo l'ordine dei controlli se i due personaggi non hanno casate in comune non possono essere parenti anche se ne hanno una diretta.

Rhaego quindi non avendo casate non ne ha più in comune nessuna con gli altri e quindi non può essere parente di nessuno.

Perchè me lo ritrovo allora nel risultato atteso di Khal Drogo?

Khal Drogo è il padre ma secondo l'ordine dei controlli non appartenendo alla casata di Rhaego,la quale è sconosciuta,non è parente.

Dove sbaglio?
andrea.sterbini (160900 points)
448 849 1643
commented Mar 15, 2019 by andrea.sterbini (160,900 points)
edited Mar 16, 2019 by andrea.sterbini

Perchè siamo disprogrammici/dislogici
Nella nostra implementazione della famiglia allargata abbiamo aggiunto i parenti diretti.
Non mi fate modificare i test.

1
1841421 (970 points)
0 30 41
commented Mar 16, 2019 by 1841421 (970 points)
Con parentela diretta che intendi?

Figli,genitori,partner,fratelli?
1
1841421 (970 points)
0 30 41
commented Mar 16, 2019 by 1841421 (970 points)

Ora passo tutti i test.

Al fine di evitare scherzi strani ai test segreti chiedo ulteriori spiegazioni:

Passo tutti i test in questa maniera:

Seguo l'ordine dei controlli.

Per quanto riguarda famiglia allargata metto tutti i parenti che sono figli,genitori,partner,fratelli quindi quelli che trovo direttamente nel personaggio.

Invece SOLO per quelli che sono nipoti o nonni faccio il controllo prima per la casata.Quindi nel caso di Rhaego è vero che è nipote ma non avendo casata lo scarto se invece fosse stato un figlio sarebbe rientrato in lista perchè rientra nell'eccezione sopra citata.ovvero parente diretto.

E' giusto?

andrea.sterbini (160900 points)
448 849 1643
commented Mar 16, 2019 by andrea.sterbini (160,900 points)

Nella famiglia allargata vanno aggiunti figli fratelli e genitori del personaggio e dei partner