Alcuni insiemi di parole hanno proprietà interessanti; in particolare, le parole possono essere scritte nelle celle di un quadrato nxn in modo tale che tutte le parole possono essere lette sia orizzontalmente sia verticalmente. Allo stesso tempo, la parola sulla prima riga deve essere presente sulla prima colonna, quella della seconda riga essere anche sulla seconda colonna e così via per ogni parola presente sulla riga i deve essere presente sulla colonna i. Un esempio di un tale insieme è dato da S = {"DATE", "FIND", IDEA", NEXT"}. Questo insieme può essere inserito nella seguente griglia quadrata:
F I N D
I D E A
N E X T
D A T E
Queste griglie sono dette quadrati di parole.
Data una griglia 4 x 4, con una lettera maiuscola dell'alfabeto latino in ciascuna cella, determinare se questa griglia rappresenta un quadrato di parole.
a = new char[4][4];
for (i=0; i<4; i++) {
for (j=0; j<4; j++) {
a[i][j] = Lettore.in.leggiChar();
Lettore.in.leggiChar();
}
}
Creo l'array a che mi rappresenta una matrice quadrata 4 x 4, poi attraverso il Lettore che è un oggetto che mi permette di leggere da input un singolo carattere ricevo l'input, solo che siccome devo alternare carattere alfabetico-spazio, anche lo spazio mi viene riconosciuto come carattere ovviamente e quindi la dimensione dell'array 4 x 4 sarebbe troppo piccola, allora ho pensato di leggere il primo carattere ed assegnarlo all'array, e poi il secondo carattere non assegnarlo a nessuna variabile, in modo tale che viene letto lo spazio, ma la dimensione dell'array rimane giusta. Solo non funziona...