Do you need any help?

Discussione sul pattern_diff_

g
giac (2790 points)
7 14 27
asked Dec 17, 2021 in HW8 by giac (2,790 points)
Ciao ragazzi, volevo avviare uno scambio di idee sulla strategia da usare per il diff, l'unico pattern che mi manca. Io non so bene se pensare in termini di matrici 2x2 da assemblare, oppure pixel a pixel, o in altri modi, con conseguenti controlli sui pixel adiacenti.
434 views

4 Answers

Best answer
l
laertleba (2840 points)
8 26 41
answered Dec 17, 2021 by laertleba (2,840 points)
selected Dec 20, 2021 by giac
Ciao, non l'ho ancora implementata pero questa è la mia idea:

Parto da una configurazione iniziale dell'immagine con il dimensione dato, poi lo riempio ricorsivamente con i valori dei colori.

Prima creo la configurazione perchè cosi posso facilmente fare dei confronti. Per ogni posizione controllo se è diverso dalle posizioni nelle matrici 2x2. I confronti saranno pochi ( al massimo 4 ) perchè sto man mano costruendo l'immagine.

Nel caso D >= di 2 allora devo avere almeno 4 colori, altrimenti niente immagini.
g
giac (2790 points)
7 14 27
commented Dec 17, 2021 by giac (2,790 points)
Scarabocchiando su un foglio, mi era venuta un'idea del genere, l'hai espressa più chiaramente
A
AlessandroBavaro (10660 points)
4 8 24
answered Dec 17, 2021 by AlessandroBavaro (10,660 points)
Ciao Giac io per esempio ho pensato prima a trovare tutte le possibili combinazioni di righe e poi combino tra loro le righe fino ad ottenere un quadrato. Però ti dico che non ho avuto un risultato ottimale ovvero non passo il test 8 che però può dipendere anche da come ho programmato.
g
giac (2790 points)
7 14 27
commented Dec 17, 2021 by giac (2,790 points)
Ci avevo pensato e credo che il tuo problema sia la creazione di un numero alto di possibili righe che devono poi essere fortemente filtrate. Lo stesso varrebbe per un'altra idea che avevo avuto, cioè l'assemblaggio di sottomatrici 2x2. Mi restano 2 idee (intuitive, ma non so bene come farle, ne se conviene farlo) : creare una matrice 2x2 e poi "orlarla" fino alla dimensione DxD; oppure creare pixel a pixel un unico array, da trasformare poi in matrice.
A
AlessandroBavaro (10660 points)
4 8 24
commented Dec 17, 2021 by AlessandroBavaro (10,660 points)
Devo dire che la costruzione da sotto quadrati ci avevo pensato ma mi sembrava piu difficile, sopratutto nel caso delle dimensioni dispari, per orlare cosa intendi?
g
giac (2790 points)
7 14 27
commented Dec 17, 2021 by giac (2,790 points)
Intendo fare una 2x2 e poi allargarla con mosse idonee a 3x3, poi 4x4 fino a DxD.

Ma è un'idea non testata, fatta cosi a colpo d'occhio.
Exyss (21390 points)
1 2 79
answered Dec 17, 2021 by Exyss (21,390 points)
Entrambe le soluzioni sono valide, ovviamente una delle due é più veloce dell'altra ma anche un po' di più difficile da implementare
Tommaso.Lopedote (1340 points)
3 9 24
answered Dec 17, 2021 by Tommaso.Lopedote (1,340 points)
avendo la lista dei colori gia' ordinata nella combinazione corretta, puoi dare come argomento della funzione ricorsiva un indice che punta ad un colore della lista, poi ad ogni chiamata ricorsiva basta che incrementi quell'indice. Poi a secondo di come navighi la stanza dovrai resettare tale indice in modo da non farlo andare "out of range" e che ogni pixel possegga un colore differente dagli altri adiacenti. Tutto pero' dipende da come hai pensato l'algoritmo ricorsivo. Questo tipo di implementazioni non fa alcuna verifica ad ogni passo, quindi potrebbe essere molto veloce...