fix : MultiDoku.getCells

This commit is contained in:
Melvyn
2025-01-29 18:42:58 +01:00
parent 9213a10c17
commit cd4d01e1e6
7 changed files with 132 additions and 50 deletions

View File

@@ -1,7 +1,9 @@
package sudoku.structure;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import sudoku.io.SudokuSerializer;
@@ -49,11 +51,11 @@ public class MultiDoku {
* @return List<Cell>
*/
public List<Cell> getCells(){
List<Cell> cells = new ArrayList<>();
Set<Cell> cellsSet = new HashSet<>();
for (Sudoku sudoku : subGrids){
cells.addAll(sudoku.getCells());
cellsSet.addAll(sudoku.getCells());
}
return cells;
return new ArrayList<>(cellsSet);
}
/**
@@ -111,10 +113,10 @@ public class MultiDoku {
* Check si le MultiDoku est valide, en fonction de ses sous-Sudokus.
* @return boolean, true s'il est valide et false sinon.
*/
public boolean isValid() {
public boolean isSolved() {
boolean result = true;
for (Sudoku sudoku : this.subGrids) {
result = sudoku.isValid() && result;
result = sudoku.isSolved() && result;
}
return result;
}
@@ -191,14 +193,17 @@ public class MultiDoku {
cellToEmpty.setSymbolIndex(Cell.NOSYMBOL);
}
/**
* Renvoie le nombre de Cell contenue dans le MultiDoku.
* @return int, nombre de Cell dans le MultiDoku.
*/
public int getNbCells() {
int result = 0;
for (Sudoku sudoku : this.subGrids) {
result += sudoku.getCells().size();
}
return result;
return getCells().size();
}
/**
* Change les Cells de ce MultiDoku avec des symboles, en Cells immuables.
*/
public void setFilledCellsImmutable() {
for (Cell filledCell : getFilledCells()) {
filledCell.setImmutable();