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.

Problema con il test n. 6 del terzo esercizio

in Es3 by (9.9k points)
closed by

Salve, sto riscontrando un problema con il sesto test del grader del terzo esercizio. Questi sono i log:

test_program_6                 
Nell'immagine 'I1.png' si ricolora lo stesso pixel al centro del quadrato e i suoi connessi più volte, dando colori digradanti ai bordi.
    
    error -> AssertionError
    when input=('I1.png', [(25, 25, (0, 0, 0), (0, 5, 5)), (25, 25, (0, 0, 0), (0, 10, 10)), (25, 25, (0, 0, 0), (0, 15, 15)), (25, 25, (0, 0, 0), (0, 20, 20)), (25, 25, (0, 0, 0), (0, 25, 25)), (25, 25, (0, 0, 0), (0, 30, 30)), (25, 25, (0, 0, 0), (0, 35, 35)), (25, 25, (0, 0, 0), (0, 40, 40)), (25, 25, (0, 0, 0), (0, 45, 45)), (25, 25, (0, 0, 0), (0, 50, 50)), (25, 25, (0, 0, 0), (0, 55, 55)), (25, 25, (0, 0, 0), (0, 60, 60)), (25, 25, (0, 0, 0), (0, 65, 65)), (25, 25, (0, 0, 0), (0, 70, 70)), (25, 25, (0, 0, 0), (0, 75, 75)), (25, 25, (0, 0, 0), (0, 80, 80)), (25, 25, (0, 0, 0), (0, 85, 85)), (25, 25, (0, 0, 0), (0, 90, 90)), (25, 25, (0, 0, 0), (0, 95, 95)), (25, 25, (0, 0, 0), (0, 100, 100)), (25, 25, (0, 0, 0), (0, 105, 105)), (25, 25, (0, 0, 0), (0, 110, 110)), (25, 25, (0, 0, 0), (0, 115, 115)), (25, 25, (0, 0, 0), (0, 120, 120))], 'test6.png')
    [(2304, 196), (0, 188), (0, 180), (0, 172), (0, 164), (0, 156), (0, 148), (0, 140), (0, 132), (0, 124), (0, 116), (0, 108), (0, 100), (0, 92), (0, 84), (0, 76), (0, 68), (0, 60), (0, 52), (0, 44), (0, 36), (0, 28), (0, 20), (0, 12)]
    !=
    [(2304, 196), (2116, 188), (1936, 180), (1764, 172), (1600, 164), (1444, 156), (1296, 148), (1156, 140), (1024, 132), (900, 124), (784, 116), (676, 108), (576, 100), (484, 92), (400, 84), (324, 76), (256, 68), (196, 60), (144, 52), (100, 44), (64, 36), (36, 28), (16, 20), (4, 12)]

    <-  il secondo e' l'output corretto

Il testo della consegna dice che viene colorata la stessa area più volte, cambiato solamente il bordo. In effetti il mio programma riesce a farlo, nelle tuple il secondo valore è giusto (perché realmente ricolora il pixel). Il problema c'è nel primo valore: al primo step il programma colora tutta la zona interna, quindi restituisce l'area colorata (che è giusta). Dal secondo step in poi però i valori non coincidono più: sembra che il grader voglia ricolorare lo stesso pixel anche se è già dello stesso colore, eppure nel testo dato c'è scritto chiaramente che: "l'area interna è il numero di pixel ricolorati con il colore c1". Questa regola sembra confermata anche dal settimo test, infatti l'area rimane 0 perché non c'è bisogno di ricolorarla.

È un problema del grader oppure io non ho capito bene la consegna?

617 views
closed with the note: answered

1 Answer

Best answer
andrea.sterbini (207940 points)
756 1270 2377
by (208k points)
selected by
Devi colorare l'area anche se è già dello stesso colore di colore1.
by (9.9k points)
Allora perché il settimo test nell'area riportata non colora nessun pixel?
andrea.sterbini (207940 points)
756 1270 2377
by (208k points)
Il settimo test colora per più volte a partire dal pixel a coordinate 0,0.
La prima volta colora tutto il quadrato di nero e mette il bordo cyan.
La seconda volta è sul bordo, quindi colora SOLO il bordo di nero e poi ne mette il bordo (di ciò che ha colorato) di cyan, e quindi in pratica colora di un cyan diverso sempre lo stesso bordo.
Questo viene ripetuto ancora fino alla fine del test
by (9.9k points)
Ora ho capito, la ringrazio!