feat: one different color for every bloc

This commit is contained in:
2025-02-06 18:32:01 +01:00
parent 909219a8f8
commit 7e068d0910

View File

@@ -22,9 +22,8 @@ public class Grille {
this.blocs = new ArrayList<>(); this.blocs = new ArrayList<>();
this.symbolesPossibles = new ArrayList<>(); this.symbolesPossibles = new ArrayList<>();
this.sudoku = sudoku; this.sudoku = sudoku;
// Ici, on génère une palette de couleurs (par exemple 4 couleurs). // Pour un sudoku classique, on attend "taille" blocs, donc on génère "taille"
// Si vous souhaitez avoir autant de couleurs qu'il y a de blocs, // couleurs.
// vous pouvez adapter le nombre passé à greatScheme/greatPalette.
initColors(); initColors();
// Initialiser les cases // Initialiser les cases
@@ -35,8 +34,13 @@ public class Grille {
} }
} }
/**
* Génère une palette de couleurs en fonction du nombre de blocs attendus.
* Pour un sudoku classique, la grille est de taille n², et il y a n² blocs,
* on génère donc 'taille' couleurs.
*/
private void initColors() { private void initColors() {
int numberOfColors = 4; // ou un autre nombre souhaité int numberOfColors = taille; // nombre de couleurs = nombre de blocs (pour sudoku classique)
List<ColorGenerator.Color> colors = ColorGenerator.greatScheme(numberOfColors); List<ColorGenerator.Color> colors = ColorGenerator.greatScheme(numberOfColors);
generatedColors = new ArrayList<>(); generatedColors = new ArrayList<>();
for (ColorGenerator.Color color : colors) { for (ColorGenerator.Color color : colors) {
@@ -128,7 +132,7 @@ public class Grille {
throw new IllegalArgumentException("La taille de la grille doit être un carré parfait."); throw new IllegalArgumentException("La taille de la grille doit être un carré parfait.");
} }
// Création des blocs en motif 3x3 (ou autre selon la taille) // Création des blocs en motif (par exemple 3x3 pour un sudoku 9x9)
for (int blocRow = 0; blocRow < blocSize; blocRow++) { for (int blocRow = 0; blocRow < blocSize; blocRow++) {
for (int blocCol = 0; blocCol < blocSize; blocCol++) { for (int blocCol = 0; blocCol < blocSize; blocCol++) {
List<int[]> positions = new ArrayList<>(); List<int[]> positions = new ArrayList<>();