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

Do you need help?

Quante volte controllare i vertici ES1 HW3

a
alessandro.c (910 points)
4 9 16
in Es1 by (910 points)
recategorized by
Quante volte controllare i vertici? È corretto che in questo esercizio ci siano molti for annidati o esiste una soluzione che permete di evitarlo?

Non so se è corretto, ma io parto dal vertice sinistro e cerco un vertice in alto destra e in basso a sinistra, da qui (sinistra in basso) controllo a destra (in basso) e verifico che il vertice sia lo stesso che ho trovato dall'alto.
Il mio dubbio è devo ricontrollare tutti gli altri vertici una seconda volta con altri for? Perchè adesso i quadrati non vengono riconosciuti correttamente...

2 Answers

Shunk (6140 points)
8 26 86
by (6.1k points)
Sicuramente è corretto, ma ci sono modi migliori per sistemare, quando hai più for annidati prova ad usare (se puoi) un while, cerca di dividere tutto in più funzioni per ridurre l'intricatezza.
Io pure ho fatto un ragionamento simile quindi non so darti una soluzione migliore
Xriuk (13590 points)
8 24 116
by (13.6k points)

Direi che ti manca un ultimo controllo, cioè dal vertice in alto a destra fino a quello in basso a destra, so che è un controllo uguale, ma va fatto per chiudere il rettangolo, con il controllo che tu fai ottieni una "C" e non tutto il rettangolo:

#--------->#
|
|
|
V
#--------->#

Come vedi nonostante i due vertici a destra siano sulla stessa coordinata X non puoi essere sicuro che siano uniti da una linea, quindi fai l'ultimo controllo andando dall'alto in basso o viceversa e ottieni un rettangolo sicuro. Poi controlli l'interno per vedere se non ha pixel bianchi all'interno.