|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Nov 2005
Messaggi: 236
|
[java]Risolvere il Sudoku
Salve a tutti,
devo creare un programma che risolva il sudoku,soltanto che non so proprio da che parte cominciare; qualcuno sa darmi qualche dritta,qualke link,a me interesserebbe avere un programma simile già bello e pronto per capire come funziona ed essere in grado di riprodurlo. Questo è un progetto d'esame e per molti programamtori potrà sembrare una banalità ma io che sono uno studente del primo anno sono in difficoltà e chiedo il vostro aiuto,vi prego quindi di aiutarmi a costruirlo,ciao,grazie mille. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Aug 2005
Messaggi: 2755
|
se ne era già parlato sul forum, prova a fare una bella ricerca
__________________
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jun 2004
Messaggi: 760
|
se la logica non mi inganna, dovrebbe essere simile, come tipologia, al problema delle 8 regine.... solo più difficile
è giusto o sbaglio?
__________________
Gandalf_BD -------------------------------------------- "When you aim at perfection, you discover it's a moving target" |
|
|
|
|
|
#4 |
|
Member
Iscritto dal: Nov 2005
Messaggi: 236
|
rispondo ad entrambi:
la ricerca l'ho fatta,ed ho trovato un post nel quale si chiedeva la stessa cosa,peccato ke il linguaggio era diverso,infatti era C++. Gandalf...non so cosa siano le 8 regine.. vi prego help me.. |
|
|
|
|
|
#5 |
|
Member
Iscritto dal: Nov 2005
Messaggi: 236
|
raga vi prego datemi na mano xkè io sono nella merda..
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Nov 2005
Città: Bologna
Messaggi: 1303
|
Aiutino semplice.
SUDOKU formato CHIUSO: (ad ogni istante almeno 1 casella è esattametnte definita) Creati una classe "cella": questa contiene un array di 9 valori. Creati la matrice di celle per il tuo sudoku. Creati dell'insiemi di celle che rappresentino le righe, le colonne, i sotto quadrati. Ovviamente ogni istanza di cella apparterrà sia ad una colonna, sia ad una riga, sia ad un quadrato. Bene, ora definisci il valore per n celle (già fare questo, ovvero scegliere quale valore dare a quali celle e a quante, richiederebbe un programmino complicato, quindi ti consiglio di fare i test prendendoli da giornali o siti). A questo punto parti ed esplori tutte le celle con un valore. Per ogni cella, togli il suo valore dall'array presenti nelle celle della stessa riga, colonna e quadarato. Quando rimane 1 valore solo nella array, allora questo è il valore della cella e diventa una cella con valore definito. Iterando ----> SOLUZIONE !!! (Fatto funzionate in C# in 2 ore) SUDOKU formato APERTO: (ad ogni istante non è detto ci sia 1 casella esattametnte definita) Non l'ho provato a fare, ma si dovrebbe gestire l'albero delle decisioni, ovvero partendo dalla soluzione precedente, si vanno a esplorare le celle non ancora risolte con solo 2 valori. se ne sceglie uno e ci si ricoda (memorizzandolo) che li c'è un bivio...via così finche si arriva infondo, se si è risolot OK, altrimenti si torna su e si riprova cambiando scelta. Qui si entra nell'intelligenza artificiale e ai mille metodi di fare alberi e di visitarli. Spero di essere stato utile. CIAO P.S.: guarda che dal codice in C++ potresti trovare un sacco di belle cose...non è poi così incomprensibile |
|
|
|
|
|
#7 |
|
Member
Iscritto dal: Nov 2005
Messaggi: 236
|
ok,grazie mille,almeno ora so dove cominciare..
comunque un esempio da cui attingere mi farebbe proprio comodo..qualcuno sa dove posso trovarlo? |
|
|
|
|
|
#8 | |
|
Senior Member
Iscritto dal: Jun 2004
Messaggi: 760
|
Quote:
cmq lo scopo del programma è quello di riuscire a mettere su una scacchiera 8x8, 8 regine in modo tale che nessuna possa mangiare nessun altra... cmq hai ragione... il tuo problema è più difficile... però se vuoi prima "farti le ossa"... penso che la ricorsione vada usata al 99%... però Java lo conosco poco buona fortuna!
__________________
Gandalf_BD -------------------------------------------- "When you aim at perfection, you discover it's a moving target" |
|
|
|
|
|
|
#9 |
|
Member
Iscritto dal: Nov 2005
Messaggi: 236
|
...okkei...grazie x il "buona fortuna"
|
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Nov 2004
Messaggi: 409
|
Secondo me il metodo più semplice per risolvere questo problema è quello della programmazione dinamica, però non so se la conosci, visto che sei al primo anno,
ciao |
|
|
|
|
|
#11 | |
|
Member
Iscritto dal: Nov 2005
Messaggi: 236
|
Quote:
|
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 01:22.



















