Ho iniziato una lezione introduttiva in Java e il materiale è assolutamente orrendo e devo ottenere voti eccellenti per essere accettato nel master, quindi la mia domanda da principiante:
Nel mio incarico devo scrivere algoritmi (non ancora pseudo-codice) per risolvere un gioco da tavolo (Sudoku). In sostanza, le note dicono che un algoritmo è una specifica dell'input (s), dell'output (s) e dei trattamenti applicati all'input per ottenere l'output. La mia domanda si basa sulla formulazione degli algoritmi perché probabilmente potrei codificarla ma non riesco a metterla su carta in modo coerente.
Il gioco ha una tavola 9x9 e uno degli algoritmi da scrivere deve trovare la soluzione osservando 3 quadrati (orizzontali o verticali) e vedere se uno dei tre sottoquadri corrisponde al numero che stai cercando. Se nessuno corrisponde, il numero che stai cercando di posizionare è in uno degli altri 2 set di 3 sottoquadri (vedi l'immagine per avere un'idea migliore).
Nota: l'attività non è scrivere un risolutore completo. Solo un algoritmo per risolvere il caso specifico che ho descritto.
Non riesco davvero a capire come formulare la soluzione nei termini sopra descritti o forse è semplicemente troppo semplice, ecco cosa stavo pensando:
Input: un set bidimensionale di dati di dimensioni 9 per 9 da risolvere e un numero da cercare.
Ouput: un insieme bidimensionale di dati di dimensioni 9 per 9 risolti o parzialmente risolti.
Trattamento: scansiona ogni serie di quadrati 3x9 e 9x3. Per ogni riga o colonna di un quadratino di 3x3, verificare se il numero corrisponde a una linea (o colonna). Se lo fa, passa alla riga successiva (o colonna). In caso contrario, passare al successivo riquadro 3x3 nella stessa riga (o colonna). Risciacqua e ripeti.
Questo ha senso come un algoritmo scritto in inglese semplice? Non cerco una risposta all'algoritmo in sé ma piuttosto alla formulazione di algoritmi in inglese semplice.
Nota : Apparentemente questo non è chiaro: non si tratta di risolvere tutte le possibili soluzioni. Si tratta di risolvere solo questo particolare insieme di regole. Non ho fatto il compito. In ogni caso, questo non è nemmeno lontanamente rilevante in quanto questo non è l'obiettivo della mia domanda.