[Java] Risolutore di Sudoku

« Older   Newer »
  Share  
Doch88
CAT_IMG Posted on 10/6/2011, 16:23     +1   -1




Dopo tanto lavoro, grazie all'aiuto di Cale92 che mi ha passato quel source, sono riuscito a finire il "risolutore di Sudoku".

http://pastebin.com/eJtNsSs3

Ecco il source, la classe principale è dochSudoku quindi il file per essere interpretato si dovrà chiamare dochSudoku.java

Il formato di un sudoku è questo:
CODICE
530|070|000
600|195|000
098|000|060
800|060|003
400|803|001
700|020|006
060|000|280
000|419|005
000|080|079
#
 
Top
Cale92
CAT_IMG Posted on 10/6/2011, 16:43     +1   -1




non riesci a creare un exe o qualcosa in modo che possa provarlo? non ho mai usato java e non so minimamente come é XD
 
Top
Doch88
CAT_IMG Posted on 10/6/2011, 16:46     +1   -1




Sono su linux, creare un exe è quasi impossibile xD
 
Top
xMasteRx
CAT_IMG Posted on 10/6/2011, 16:58     +1   -1




usa VBox xD
 
Top
Doch88
CAT_IMG Posted on 10/6/2011, 17:07     +1   -1




Per ora accontentatevi del file .jar asd
http://dochsoftware.altervista.org/blog/re.../dochSudoku.jar
basta aprirlo con java con il comando:
java -jar dochSudoku.jar
 
Top
Doch88
CAT_IMG Posted on 10/6/2011, 18:16     +1   -1




Per i più pigri ecco il file .exe: http://dochsoftware.altervista.org/blog/re...load/Sudoku.exe
C'ho messo un pò di tempo per ricavarlo, apprezzate lo sforzo =)

Un consiglio: apritelo da terminale perché non c'è nessun System("pause") asd
Se dà qualche problema create un file nella stessa cartella chiamato provasu.txt e metteteci il sudoku =)
 
Top
Gianlu-thebest
CAT_IMG Posted on 10/6/2011, 20:07     +1   -1




Una domanda..
che funzioni vengono usate? Non conosco il java.. ho dato un occhiata al codice e sembra che si può trasformare in autoit..
 
Top
Doch88
CAT_IMG Posted on 10/6/2011, 20:31     +1   -1




Ora sono su cellulare, domani appena accendo il computer ti spiego tutto. Su autoit ci sono le funzioni ricorsive?
 
Top
Doch88
CAT_IMG Posted on 11/6/2011, 16:06     +1   -1




CITAZIONE (Gianlu-thebest @ 10/6/2011, 21:07) 
Una domanda..
che funzioni vengono usate? Non conosco il java.. ho dato un occhiata al codice e sembra che si può trasformare in autoit..

Allora per rispondere alla tua domanda l'algoritmo prende il primo spazio libero che trova e, tramite un ciclo, inserisce tutti i numeri da 1 a 9 che rispettino le regole del sudoku (cioè che non sia presente lo stesso numero nella riga, colonna o quadrante nello spazio libero) e aumenta di uno una variabile che tiene conto dei numeri che sono stati aggiunti nello spazio.
Poi, sempre all'interno del ciclo, si autorichiama (ricorsivo) e se la funzione restituisce true lui restituisce true, altrimenti svuota nuovamente lo spazio e diminuisce di uno la variabile-contatore. Subito dopo il ciclo il programma controlla la variabile-contatore e se è uguale a 0 ritorna false.

Pseudo-codice:
http://r0b0t82.gotdns.org/pastebin/?id=67gC8mt

Non sono bravo a spiegare quindi se non hai capito qualcosa dimmelo =)
 
Top
Gianlu-thebest
CAT_IMG Posted on 12/6/2011, 19:57     +1   -1




Forse in AutoIt si può fare.. se ho capito bene le funzioni ricorsive, si può fare..
 
Top
9 replies since 10/6/2011, 16:23   385 views
  Share