|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectsudoku_human.Griglia
public class Griglia
Classe che definisce una griglia composta da 9x9 caselle,
utilizzabile durante l'esecuzione dell'algoritmo di risoluzione
del sudoku per rappresentare uno stato.
one line to give the program's name and an idea of what it does.
Copyright (C) 2005 Marco Cornolti (cornolti@cli.di.unipi.it)
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
Field Summary | |
---|---|
private int |
caselleDefinite
|
private Casella[][] |
griglia
|
private boolean |
verificata
|
Constructor Summary | |
---|---|
Griglia(Casella[][] contenuto)
Da un array di 9x9 caselle, costruisce uno stato. |
|
Griglia(int[][] contenuto)
Da un array di 9x9 interi rappresentanti il valore delle caselle, costruisce uno stato. |
Method Summary | |
---|---|
int |
caselleDefinite()
|
Griglia |
cloneModificato(int xDaModificare,
int yDaModificare,
int n)
restituisce un clone della griglia con l'eccezione di una casella definita diversamente |
int |
compareTo(java.lang.Object arg0)
|
int |
countOccurrences(int n,
int xcasella,
int ycasella)
|
boolean |
possibile()
|
Griglia |
risolvi()
lancia l'algoritmo per risolvere la griglia. |
private boolean |
risolviIstanza(java.util.PriorityQueue statesQueue)
esegue un passaggio per avvicinarsi alla risoluzione di una singola istanza. |
private boolean |
scanABBlocco()
Applicazione delle regole A e B ai blocchi. |
private boolean |
scanARigaColonna()
scan di ogni casella: A) se viste le altre caselle della riga e della la colonna, la casella e' l'unica che puo' essere in un modo, verra' definita in quel modo. |
private boolean |
scanBRigaColonna()
scan di ogni casella: B) se in una riga ci sono caselle definite, tutte le altre caselle della stessa riga e colonna non possono avere la possibilita' della casella definita. |
private boolean |
scanC()
Applicazione della regola C. |
private boolean |
scanD()
OBSOLETO: e' piu' potente scanA scan di ogni casella: D) se viste le altre caselle della riga, della colonna e del blocco, la casella e' l'unica che puo' essere in un modo, verra' definita in quel modo. |
void |
sortByOccurrences(int[] possibilita,
int x,
int y)
ordina un array con le possibilita' per una casella. e' messa per prima la possibilita' che ha piu' occorrenze tra le possibilita' del resto del blocco, della riga, e della linea. |
int[] |
sortByPossibilityCountAndImpact()
Ordinamento delle caselle dando priorita' a quelle con meno possibilita', diamo priorita' anche a quelle con maggiore impatto tra le varie possibilita', ovvero per una singola possibilita' hanno maggiore possibilita'. |
java.lang.String |
toString()
|
java.lang.String |
toStringUndefined()
|
boolean |
verifica()
verifica che un'istanza sia una soluzione, ovvero che siano applicate tutte le regole del sudoku |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
private boolean verificata
private Casella[][] griglia
private int caselleDefinite
Constructor Detail |
---|
public Griglia(Casella[][] contenuto)
contenuto
- le caselle da inserire nella grigliapublic Griglia(int[][] contenuto)
contenuto
- array di 9x9 interi con le caselle definite.Method Detail |
---|
public Griglia risolvi()
private boolean risolviIstanza(java.util.PriorityQueue statesQueue)
public int caselleDefinite()
private boolean scanD()
private boolean scanARigaColonna()
private boolean scanBRigaColonna()
private boolean scanABBlocco()
private boolean scanC()
public java.lang.String toString()
toString
in class java.lang.Object
public java.lang.String toStringUndefined()
public boolean verifica()
public boolean possibile()
public Griglia cloneModificato(int xDaModificare, int yDaModificare, int n)
xDaModificare
- coordinata x della casella da definireyDaModificare
- coordinata y della casella da definiren
- intero col quale definire la casella.
public int countOccurrences(int n, int xcasella, int ycasella)
n
- il numero da 1 a 9
public void sortByOccurrences(int[] possibilita, int x, int y)
possibilita
- array con le possibilita' 1-9 da ordinarepublic int[] sortByPossibilityCountAndImpact()
public int compareTo(java.lang.Object arg0)
compareTo
in interface java.lang.Comparable
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |