doc : Block, Cell, Coordiante, MultiDoku
Some checks failed
Linux arm64 / Build (push) Has been cancelled

This commit is contained in:
Melvyn
2025-01-28 11:21:43 +01:00
parent a1fd715aee
commit 5eabf87c94
5 changed files with 154 additions and 21 deletions

View File

@@ -3,13 +3,35 @@ package sudoku.structure;
import java.util.ArrayList;
import java.util.List;
/**
* Représente une case d'un, ou plusieurs, sudoku qui à comme valeur un index de symbole.
* Celui ci pourra être remplacer par un symbole en temps voulu.
*/
public class Cell {
/**
* Constante de valeur d'index de symbole quand il n'y en a pas,
* soit que la Cell est vide.
*/
public static int NOSYMBOL = -1;
/**
* Block dans lequel est la Cell.
*/
private Block blockContainer;
/**
* L'index du symbole que contient la Cell.
* Il est initialisé à Cell.NOSYMBOL.
*/
private int symbolIndex = Cell.NOSYMBOL;
/**
* Liste des index de symbole possibles pour cette Cell,
* en fonction des contraintes de sudoku dans lequel elle est.
*/
private final List<Integer> possibleSymbols;
/**
* Si cette Cell peut être modififié ou non.
*/
private boolean isMutable = true;
public Cell() {
@@ -40,6 +62,9 @@ public class Cell {
this.possibleSymbols.addAll(possibleSymbols);
}
/**
* Rend la Cell immuable.
*/
public void setImmutable() {
this.isMutable = false;
}
@@ -62,6 +87,10 @@ public class Cell {
return i;
}
/**
* Renvoie si la Cell est vide ou non.
* @return boolean, true si la Cell est vide, false sinon.
*/
public boolean isEmpty() {
return this.symbolIndex == Cell.NOSYMBOL;
}
@@ -74,10 +103,18 @@ public class Cell {
return this.possibleSymbols;
}
/**
* Renvoie si la Cell est modifiable
* @return boolean, true si elle est modifiable ou false sinon.
*/
public boolean isMutable() {
return this.isMutable;
}
/**
* Vide la Cell, en renvoie l'ancien index du symbole qui était dedans.
* @return int, index du symbole anciennement contenue dans la Cell.
*/
public int empty() {
int oldSymbol = this.symbolIndex;
this.symbolIndex = Cell.NOSYMBOL;