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

Do you need help?

HW6rec errore di scelta nella direzione

S
SolidV (560 points)
0 1 4
in HW6 di recupero by (560 points)
Buonasera avrei una domanda per cui ormai sto scervellando.Andando a fare i test sul mio programma,ho notato che tutti quelli che falliscono avvengono in seguito ad una scelta errata da parte della funzione dado della direzione.Ho già controllato manualmente ogni singolo test,se si attiva la mia funzione dado quando non deve,ma ciò non avviene.

In particolare prendo di riferimento il test tiny-adventure-777-129-30, il quale:

-l'expected dovrebbe essere questo: https://imagizer.imageshack.com/img922/5592/QSFczB.png

-nel mio test invece,la valutazione nei punti in cui dovrebbe attivarsi il dado,sono rispettivamente NORD(cerchio rosso) e successivamente OVEST(cerchio giallo),andando ovviamente ad allungare il percorso del party e generando un assertion error.  https://imagizer.imageshack.com/img924/8346/vgM6Ho.png

Non so veramente dove possa essere il problema,visto che alcuni dei successivi test (ad esempio tiny-adventure-91-379-100) pur prevedendo lanci dei dadi,lì le valutazioni vengono effettuate correttamente.

Vi ringrazio in anticipo!

2 Answers

Best answer
angelo.spognardi (8170 points)
75 155 224
by (8.2k points)
selected by

C'è qualcosa che non va nel tuo codice: nell'esplorazione della direzione est, l'esplorazione è obbligata fino a quando il party esce dalla stanza. In quella casella è l'unico momento in cui il party deve lanciare il dado: al primo lancio di dado deve uscire 3 (sud) quindi una direzione non valida, mentre al secondo lancio deve uscire 4 (ovest), di modo che il party continua dritto, entra nella stanza, esce dalla porta e finisce in un punto già visitato (game over). Scommetto che in problema è causato da qualche lancio durante l'esplorazione della direzione precedente (nord): non è che nella casella 600, 240 il party tira il dado mentre invece dovrebbe entrare nella porta?

Fammi sapere se ho vinto la scommessa :-)

Si guardi la seguente immagine:

S
SolidV (560 points)
0 1 4
by (560 points)
Scommessa vinta :) .Ora mi rimane da risolvere gli errori generati dai successivi test,la ringrazio!
R
Rinaldi.Pasquale (470 points)
0 0 2
by (470 points)
controlla ancora è stata modificata random.seed("Dungeons and Dragons")  e inoltre verifica quante volte tira il dado. nel punto riga,colonna della mappa (cerchio giallo) deve essere la seconda volta che lo tira.
S
SolidV (560 points)
0 1 4
by (560 points)
Ho inserito delle print come da consigli precedentemente visti sul forum,e infatti quando arriva al cerchio giallo è esattamente la seconda volta che tira il dado. random.seed non viene proprio toccata,ne richiamata in qualche mia funzione esterna,rimane lì senza essere toccata come d'altronde scritto nel commento inserito dai prof
R
Rinaldi.Pasquale (470 points)
0 0 2
by (470 points)
Non è che ti segna il percorso a destra come percorso calpestato è non ti ci va?