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 cells; /** * List de sudoku qui contiennent le block * Pour un acces plus rapide aux sudokus */ private final List sudokus; public Block(List cells) { this.cells = cells; this.sudokus = new ArrayList<>(); } public Block() { this(new ArrayList<>()); } public List getCells() { return cells; } /** * Ajoute une Cell au Block * * @param newCell Cell, à ajouter */ public 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 getSudokus() { return sudokus; } }