Hw2 fallimento del test con 100000 parole in italiano

F
FraDepe (360 points)
4 6 7
asked Oct 31, 2020 in HW2 obbligatorio by FraDepe (360 points)
Salve a tutti,

ho svolto l'hw2 obbligatorio ma quando vado a fare i test, l'unico che non viene passato è quello con 100000 parole in italiano a causa del risultato che è diverso da quello che si aspetta. Non capisco come sia possibile che è l'unico che non passa, perchè se il ragionamento che sta dietro al mio codice fosse errato, allora non dovrebbe passarmi nemmeno i test con più parole. Ho ricontrollato tutto il codice e non riesco veramente a capire cosa sia sbagliato. Qualcuno sa dirmi dove potrei ricontrollare e dove potrebbe essermi sfuggito qualcosa?

Grazie in anticipo
249 views

5 Answers

C
ChristianSt (1790 points)
3 9 25
answered Oct 31, 2020 by ChristianSt (1,790 points)
edited Oct 31, 2020 by ChristianSt
Per cercare di comprendere come replicare un caso simile al tuo ho modificato il valore di una lettera, cambiando il valore della lettera 'j' da 8 a 7 ho notato che 9 test passano e 8 test falliscono. Visto che non ti va in timeout, e tutti gli altri test vanno bene, io ti consiglierei di controllare i valori che assegni alle lettere.
F
FraDepe (360 points)
4 6 7
commented Oct 31, 2020 by FraDepe (360 points)

Gia fatto, tutti i valori sono giusti frown

C
ChristianSt (1790 points)
3 9 25
commented Oct 31, 2020 by ChristianSt (1,790 points)
Mi dispiace, e' un comportamento abbastanza strano, hai visto il risultato che si aspetta e quello che gli fornisci? vedi di quanto differiscono, ti potrebbe aiutare nel capire cosa e' andato storto. Good luck :)
SimoneBd96 (3030 points)
5 11 33
answered Oct 31, 2020 by SimoneBd96 (3,030 points)
Se ti sfugge solo un test, potrebbe essere che non hai gestito un caso particolare, purtroppo non è facile trovare il baco, quello che ti consiglio è come prima cosa di giocare molto con il debugger, e vedere effettivamente come lavora la tua soluzione ovviamente, l'input è grande quindi ci vorrà pazienza, cerca anche di capire dove esattamente è diverso perché così potresti capire qual'è il caso che non gestisci. Se proprio non funziona così alle volte (non sempre) la cosa migliore è mettere in discussione pesantemente la propria soluzione e provare ad editarne una nuova utilizzando delle cose che siamo sicuri che nella soluzione precedente ha funzionato, mi spiace che sono stato generico, spero possa esserti d'aiuto. Buon lavoro collega!
F
FraDepe (360 points)
4 6 7
commented Oct 31, 2020 by FraDepe (360 points)
Ho appena provato a fare il debug con il test da 1000 lettere e mi sembra sia tutto giusto. Mi sa che a questo punto mi tocca provare a ragionare con un codice nuovo.
iris (390 points)
0 0 3
answered Oct 31, 2020 by iris (390 points)
Ciao, prova a controllare i casi che hai analizzato, ad esempio se hai considerato il caso in cui le lettere pescabili rimaste sono pari a quelle appena giocate e non solo maggiori o minori.
F
FraDepe (360 points)
4 6 7
commented Oct 31, 2020 by FraDepe (360 points)
Sisi il mio codice analizza tutti e 3 i casi
SimoneModiga (3370 points)
6 18 34
answered Oct 31, 2020 by SimoneModiga (3,370 points)
Io nel mio algoritmo per evitare errori del genere ho messo a fine turno di ogni giocatore una condizione, in cui se la mano del giocatore fosse andata a zero sarebbe uscito subito dal gaming, poichè nel mio algoritmo se levo punti dalla mano di default significa che num_letters è a zero.

Ora non so se sia questo il problema, o se già hai implementato qualcosa di simile.

Spero ti abbia dato uno spunto, altrimenti ti consiglio di rivederne la logica, specialmente in punti che ritieni cruciali, andando a mettere qualche condizione in piu' dove serve.
F
FraDepe (360 points)
4 6 7
commented Oct 31, 2020 by FraDepe (360 points)

L'ho già messa questa condizionefrown

F
Figara93 (560 points)
1 2 7
answered Oct 31, 2020 by Figara93 (560 points)
se tutti i valori sono giusti, potresti ricontrollare come hai impostato la parte finale del tuo codice, prova ad analizzare l'errore interessato nei vari step e controllare cosa non torna dal risultato desiderato