proposition de début
All checks were successful
Linux arm64 / Build (push) Successful in 41s

This commit is contained in:
2024-12-11 20:43:42 +01:00
parent 637987aafb
commit 34cf7b5da8
5 changed files with 94 additions and 0 deletions

View File

@@ -0,0 +1,15 @@
package sudoku;
public class Bloc<S> {
private final Case<S>[] cases;
public Bloc(Case<S>[] cases) {
this.cases = cases;
}
public Case<S>[] getCases() {
return cases;
}
}

View File

@@ -0,0 +1,18 @@
package sudoku;
public class Case<S> {
private Symbole<S> symbole;
public Case(Symbole<S> symbole) {
this.symbole = symbole;
}
public Symbole<S> getSymbole() {
return this.symbole;
}
public void setSymbole(Symbole<S> symbole) {
this.symbole = symbole;
}
}

View File

@@ -0,0 +1,19 @@
package sudoku;
import java.util.ArrayList;
import java.util.List;
/**
* @class MultiDoku
* @brief Représente une grille de Multidoku.
* Une grille de sudoku est un multidoku avec un seul sous-sudoku
*/
public class MultiDoku<S> {
private final List<Sudoku<S>> sousGrilles;
public MultiDoku(List<Symbole<S>> symboles) {
this.sousGrilles = new ArrayList<>();
}
}

View File

@@ -0,0 +1,27 @@
package sudoku;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
* @class Sudoku
* @brief Représente une grille de sudoku avec N symboles
*/
public class Sudoku<S> {
private final List<Symbole<S>> symboles;
private final List<Bloc<S>> blocs;
private final List<Case<S>> cases;
public Sudoku(List<Symbole<S>> symboles) {
this.symboles = symboles;
// initialisation des cases
this.cases = new ArrayList<>(this.symboles.size() * this.symboles.size());
Collections.fill(this.cases, new Case<>(null));
// initialisation des blocs
this.blocs = new ArrayList<>(this.symboles.size());
Collections.fill(this.blocs, new Bloc<>(null));
}
}

View File

@@ -0,0 +1,15 @@
package sudoku;
public class Symbole<S> {
private final S valeur;
public Symbole(S valeur) {
this.valeur = valeur;
}
public S getValeur() {
return valeur;
}
}