54 lines
1.1 KiB
Java
54 lines
1.1 KiB
Java
package sudoku;
|
|
|
|
import sudoku.constraint.IConstraint;
|
|
|
|
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 {
|
|
|
|
private final List<Sudoku> subGrids;
|
|
|
|
public MultiDoku(List<Sudoku> subGrids) {
|
|
this.subGrids = subGrids;
|
|
}
|
|
|
|
public int getNbSubGrids(){
|
|
return subGrids.size();
|
|
}
|
|
|
|
public Sudoku getSubGrid(int i){
|
|
return subGrids.get(i);
|
|
}
|
|
|
|
public List<MutableCell> getMutableCells(){
|
|
List<MutableCell> mutableCells = new ArrayList<>();
|
|
for (Sudoku sudoku : subGrids){
|
|
mutableCells.addAll(sudoku.getMutableCells());
|
|
}
|
|
return mutableCells;
|
|
}
|
|
|
|
public void updateSymbolsPossibilities() throws Exception {
|
|
for (Sudoku sudoku : subGrids){
|
|
sudoku.updateSymbolsPossibilities();
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public String toString() {
|
|
StringBuilder sb = new StringBuilder();
|
|
sb.append("Multidoku {");
|
|
for (Sudoku sudoku : subGrids){
|
|
sb.append("\n\t").append(sudoku.toString());
|
|
}
|
|
sb.append("\n}");
|
|
return sb.toString();
|
|
}
|
|
}
|