Test Sbagliato

dolcetto_gommoso (2790 points)
3 6 18
asked Oct 23, 2020 in HW2 obbligatorio by dolcetto_gommoso (2,790 points)
recategorized Nov 11, 2020 by andrea.sterbini

Salve a tutti...

Sto facendo l'homework e sto riscontrando dei problemi con un test, quindi avrei delle curiosità da chiedere..

1) i test in ita e in eng sono simili? anche se dubito perchè i tempi sono diversi, quindi usano parole differenti?

2) tutti i test mi vengono giusti, apparte i timeout - ma non è questo il punto (per oracrying) - non passo un test, e l'errore è minimo. Il punteggio di tutti i giocatori sono giusti, tranne dell'ultimo che invece di 38420 mi esce come risultato 38426... il codice bene o male è simile per tutti e 4 i giocatori e passo tutti i test, avete consigli da darmi su dove eventualmente io abbia sbagliato?  

285 views

7 Answers

Best answer
SimoneBd96 (3030 points)
5 11 33
answered Oct 23, 2020 by SimoneBd96 (3,030 points)
selected Oct 23, 2020 by dolcetto_gommoso
Per il punto due a me è successa una cosa simile, nel mio caso era un errore di aggiornamento delle lettere in mano ad un certo giocatore, nel mio caso ho dovuto utilizzare due aggiornamenti a secondo del tipo di giocatore, quindi probabilmente devi controllare con il debbuger i calcoli che fa e magari metterci il controllo per usare una strategia diversa, scartato l'errore di calcolo (che non credo possa essere quello che ti da il problema) ti consiglio vivamente di pensare se c'è un errore concettuale negli aggiornamenti. spero di esserti stato di aiuto. Buon lavoro
Rametto (4910 points)
3 4 25
answered Oct 23, 2020 by Rametto (4,910 points)
1) I test fondamentalmente credo siano uguali, poi non saprei dirti

2) Forse potresti sbagliare una sottrazione alla fine o non riempi la mano per l'ultimo
giordano_sannino (13650 points)
7 16 81
answered Oct 23, 2020 by giordano_sannino (13,650 points)

Veramente strano il punto 2...non so che dirti seguo anch'io, direi di controllare il dizionario(se lo hai messo) ma no,perchè con quei numeri grandi è strano che influisce solo quel risultato, Pensando che il tuo numero è maggiore, alla fine sembra che non gli togli 2 lettere(6 punti,3 a lettera), quindi mi concentrerei su quello... Se mi viene altro in mente ti farò sapere! cool

e
emanuele.segatori (380 points)
0 1 4
answered Oct 23, 2020 by emanuele.segatori (380 points)
Ho avuto un problema simile, se non lo stesso.

Se il giocatore ha 5 lettere e ne rimangono 3 pescabili non contavo il fatto che giocando una parola da 5 lettere ne può pescare solo 3, e invece ritornava 5 lettere in mano. Per il resto nessun errore, ma alla fine giocatore che ha pescato per ultimo prima della fine del mazzo ha 2 lettere in più, e dunque 6 punti in meno.

Essenzialmente un giocatore ripesca tutta la mano anche se rimangono meno lettere.
e
emanuele.segatori (380 points)
0 1 4
commented Oct 23, 2020 by emanuele.segatori (380 points)
Il turno esatto in cui finiscono le lettere il giocatore deve pescarne solo il numero rimanente, non tutta la mano
dolcetto_gommoso (2790 points)
3 6 18
commented Oct 23, 2020 by dolcetto_gommoso (2,790 points)

questo problema l'ho risolto già ieri, mi viene da pensare che il problema sia l'opposto, perchè non mi conta 6 punti in meno, ma in più, quindi che alcune lettere non le toglie, ma il fatto che non lo faccia a un solo test, e tutti gli altri li passa, mi sta fancendo diventare pazzocrying

1
1937764 (3520 points)
6 14 42
answered Oct 23, 2020 by 1937764 (3,520 points)

1. Se apri i file .json nello zip da scaricare, vedrai che in quelli ita si usano parole italiane, nell'altro parole inglesi

2. Controlla di vedere se devi levare un po' di carte dal mazzo e un po' dal giocatore.

Es: parola da 5 lettere, ci sono 3 carte nel mazzo. Il mazzo andrà a 0 ma l'utente avrà 3 carte in mano (5 iniziali + 3 del mazzo - 5 della parola messa)

dolcetto_gommoso (2790 points)
3 6 18
commented Oct 23, 2020 by dolcetto_gommoso (2,790 points)

il fatto è che dovrei aver già risolto questo problema, ma evidentemente non per tutti i giocatori, grazie per la risposta a tutti. Spero di finire entro pranzowink

M
Michelangelo00 (1050 points)
2 3 8
answered Oct 23, 2020 by Michelangelo00 (1,050 points)
il consiglio che posso darti è di debuggare il codice con gli argomenti di quel test specifico e vedere cos'è che non va nel tuo codice.

Quello che posso dirti è che io l'ho risolto con delle semplici liste e un pò di if su delle stringhe.
dolcetto_gommoso (2790 points)
3 6 18
commented Oct 23, 2020 by dolcetto_gommoso (2,790 points)

ci ho pensato anche io ma fare il debug su 100k numeri ci metto troppocrying

sai darmi qualche consigli su come velocizzare il debug?

M
Michelangelo00 (1050 points)
2 3 8
commented Oct 23, 2020 by Michelangelo00 (1,050 points)
dipende tutto da come hai creato il tuo codice.
twgever (15190 points)
7 27 105
answered Oct 23, 2020 by twgever (15,190 points)
per quanto riguarda la prima domanda, ti posso dire che sicuramente cambia quanto tempo ci metti ad assegnare i punteggi, perchè per esempio in italiano non usiamo la k, invece in inglese le parole con la k sono molto usate, e teoricamente, per ragioni di tempo, la k ti converrebbe controllarla all'ultimo (non so se mi sono spiegato, però parole diverse=tempi diversi)

per il secondo punto è veramente difficile come cosa. Presumibilmente, dovrebbe essere un errore nel calcolo delle carte rimaste in mano, visto che sbagli di 6 numeri, quindi 2 lettere. Puoi provare a riorganizzare quella parte di testo!