Files
Sudoku/app/src/main/java/sudoku/structure/Block.java
Persson-dev c16f2b8f5a
All checks were successful
Linux arm64 / Build (push) Successful in 37s
feat: dynamic constraints (Fixes #8)
2025-01-29 17:19:44 +01:00

73 lines
1.3 KiB
Java

package sudoku.structure;
import java.util.ArrayList;
import java.util.List;
/**
* Class qui représente les block de chaque sudoku,
* Un block étant un ensemble de cellule avec une contrainte de block qui lui
* ait associé
*/
public class Block {
/**
* L'ensemble des cellules du block
*/
private final List<Cell> cells;
/**
* List de sudoku qui contiennent le block
* Pour un acces plus rapide aux sudokus
*/
private final List<Sudoku> sudokus;
public Block(List<Cell> cells) {
this.cells = cells;
this.sudokus = new ArrayList<>();
}
public Block() {
this(new ArrayList<>());
}
public List<Cell> getCells() {
return cells;
}
/**
* Ajoute une Cell au Block
*
* @param newCell Cell, à ajouter
*/
void addCell(Cell newCell) {
this.cells.add(newCell);
}
/**
* Cherche si le Block contient déjà un symbole donné.
*
* @param symbolIndex int, un index de symbole
* @return boolean, true s'il contient le symbole et false sinon
*/
public boolean containsSymbol(int symbolIndex) {
for (Cell cell : getCells()) {
if (cell.getSymbolIndex() == symbolIndex)
return true;
}
return false;
}
public boolean containsCell(Cell cell) {
for (Cell cellTmp : this.cells) {
if (cellTmp.equals(cell)) {
return true;
}
}
return false;
}
public List<Sudoku> getSudokus() {
return sudokus;
}
}