refactor: update ContrainteBloc to handle rectangle bloc, update tests, and improve code comments
This commit is contained in:
@@ -18,9 +18,11 @@ public class Grille {
|
||||
private List<String> generatedColors;
|
||||
|
||||
/**
|
||||
* Constructeur permettant d'initialiser une griller grace aux paramètres suivants :
|
||||
* @param taille
|
||||
* @param sudoku
|
||||
* Constructeur permettant d'initialiser une grille grace aux paramètres
|
||||
* suivants :
|
||||
*
|
||||
* @param taille : taille de la grille
|
||||
* @param sudoku : sudoku
|
||||
*/
|
||||
public Grille(int taille, Sudoku sudoku) {
|
||||
this.taille = taille;
|
||||
@@ -85,31 +87,36 @@ public class Grille {
|
||||
}
|
||||
|
||||
/**
|
||||
* Méthode permettant de connaitre la valeur d'une case (symbole) grace aux paramètres suivants :
|
||||
* @param ligne
|
||||
* @param colonne
|
||||
* @return
|
||||
* Méthode permettant de retourner une case en fonction de sa ligne et de sa
|
||||
* colonne
|
||||
*
|
||||
* @param ligne : coordonnée de la ligne
|
||||
* @param colonne : coordonnée de la colonne
|
||||
* @return Case
|
||||
*/
|
||||
public Case getCase(int ligne, int colonne) {
|
||||
return cases[ligne][colonne];
|
||||
}
|
||||
|
||||
/**
|
||||
* Crée un bloc personnalisé à partir des positions spécifiées.
|
||||
* La couleur du bloc est choisie de façon cyclique dans la palette générée.
|
||||
* Méthode permettant de créer un bloc personnalisé en fonction des positions
|
||||
* passées en paramètre <br />
|
||||
* <br />
|
||||
*
|
||||
* Exemple d'utilisation :
|
||||
* sudoku.getGrille().creerBlocPersonnalise(Arrays.asList(
|
||||
* new int[] { 0, 0 },
|
||||
* new int[] { 0, 1 },
|
||||
* new int[] { 0, 2 },
|
||||
* new int[] { 1, 0 },
|
||||
* new int[] { 1, 1 },
|
||||
* new int[] { 1, 2 },
|
||||
* new int[] { 2, 0 },
|
||||
* new int[] { 2, 1 },
|
||||
* new int[] { 2, 2 }
|
||||
* ));
|
||||
* Exemple de positions pour un sudoku 9x9 : <br />
|
||||
* sudoku.getGrille().creerBlocPersonnalise(Arrays.asList( <br />
|
||||
* new int[] { 0, 0 }, <br />
|
||||
* new int[] { 0, 1 }, <br />
|
||||
* new int[] { 0, 2 }, <br />
|
||||
* new int[] { 1, 0 }, <br />
|
||||
* new int[] { 1, 1 }, <br />
|
||||
* new int[] { 1, 2 }, <br />
|
||||
* new int[] { 2, 0 }, <br />
|
||||
* new int[] { 2, 1 }, <br />
|
||||
* new int[] { 2, 2 } <br />
|
||||
* );
|
||||
*
|
||||
* @param positions : liste de positions pour le bloc personnalisé <br />
|
||||
*/
|
||||
public void creerBlocPersonnalise(List<int[]> positions) {
|
||||
try {
|
||||
@@ -290,8 +297,12 @@ public class Grille {
|
||||
}
|
||||
|
||||
/**
|
||||
* Méthode permettant de retourner la liste des symboles possible. Cela dépend de ce qu'a saisit l'utilisateur dans la méthode askSetSymbolesPossibles
|
||||
* @return
|
||||
* Méthode permettant de retourner la liste des symboles possible.
|
||||
* Cela dépend de ce que saisit l'utilisateur dans la méthode
|
||||
* askSetSymbolesPossibles
|
||||
*
|
||||
* @return List la liste des symboles possibles
|
||||
* @see Symbole
|
||||
*/
|
||||
public List<Symbole> getSymbolesPossibles() {
|
||||
return symbolesPossibles;
|
||||
@@ -299,7 +310,8 @@ public class Grille {
|
||||
|
||||
/**
|
||||
* Méthode permettant d'ajouter un symbole à la liste des symboles possibles
|
||||
* @param symbolesPossibles
|
||||
*
|
||||
* @param symbolesPossibles : liste des symboles possibles
|
||||
*/
|
||||
public void setSymbolesPossibles(ArrayList<Symbole> symbolesPossibles) {
|
||||
this.symbolesPossibles = symbolesPossibles;
|
||||
@@ -318,7 +330,8 @@ public class Grille {
|
||||
|
||||
/**
|
||||
* Méthode permettant de retourner la taille de la grille
|
||||
* @return
|
||||
*
|
||||
* @return taille
|
||||
*/
|
||||
public int getTaille() {
|
||||
return taille;
|
||||
@@ -330,15 +343,15 @@ public class Grille {
|
||||
return bloc;
|
||||
}
|
||||
}
|
||||
return null; // Ne devrait jamais arriver si la grille est bien construite
|
||||
return null; // Ne dois jamais arriver si la grille est bien construite
|
||||
}
|
||||
|
||||
/**
|
||||
* Vérifie si toutes les contraintes sont respectées.
|
||||
* S'arrête dès qu'une contrainte n'est pas respectée.
|
||||
*
|
||||
* @param contraintes
|
||||
* @return
|
||||
* @param contraintes : liste des contraintes à vérifier
|
||||
* @return true si toutes les contraintes sont respectées, false sinon
|
||||
*/
|
||||
public boolean verifierToutesContraintes(List<Contrainte> contraintes) {
|
||||
// Vérifier chaque case de la grille
|
||||
@@ -362,8 +375,10 @@ public class Grille {
|
||||
}
|
||||
|
||||
/**
|
||||
* Méthode permettant de retourner la longueure du symbole le plus long pour dimensionner corectement les cases et la grille
|
||||
* @return
|
||||
* Méthode permettant de retourner la longueur du symbole le plus long pour
|
||||
* dimensionner correctement les cases et la grille en console
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public int getLongueurSymboleLePlusLong() {
|
||||
int max = 0;
|
||||
@@ -377,7 +392,8 @@ public class Grille {
|
||||
|
||||
/**
|
||||
* Méthode permettant d'afficher la grille
|
||||
* @return
|
||||
*
|
||||
* @return String : représentation de la grille
|
||||
*/
|
||||
@Override
|
||||
public String toString() {
|
||||
|
||||
Reference in New Issue
Block a user