Please ignore secret bonuses. Secret tests do NOT award bonus. Max hw grade is 30+2 bonus efficiency

Do you need help?

Notice Board

Per partecipare al corso di Fondamenti di programmazione 2023-24 loggatevi e attivatelo nella vostra pagina dei corsi preferiti. A quel punto il corso appare nel menù personale cliccando sul proprio avatar. Per i materiali degli anni precedenti seguite lo stesso metodo.

To join the Programming/Lab 2023-24 course, log-on and select it on the my courses page. It will appear on the personal menu of your avatar. For earlier years use the same method.

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

andrea.sterbini (207920 points)
750 1267 2373
in HW3bis by (208k points)
edited by

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.

500 views

1 Answer

1
1841421 (970 points)
3 31 41
by (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 (207920 points)
750 1267 2373
by (208k points)
edited by

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)
3 31 41
by (970 points)
Con parentela diretta che intendi?

Figli,genitori,partner,fratelli?
1
1841421 (970 points)
3 31 41
by (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 (207920 points)
750 1267 2373
by (208k points)

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