Package sudoku.structure

# Class Sudoku

java.lang.Object
sudoku.structure.Sudoku

public class Sudoku extends Object
Class : Sudoku Brief : Représent un Sudoku

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Sudoku(List<Cell> cells, List<Block> blocks, List<IConstraint> constraints)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `canBePlaced(int x, int y, int value)`
  Teste si on peut placer la value dans la Cell aux coordonnées x, y d'après les contraintes du Sudoku.
  `List<Block>`
  `getBlocks()`
  `int`
  `getBlockWidth()`
  `Cell`
  `getCell(int i)`
  `Cell`
  `getCell(int x, int y)`
  Renvoie la Cell aux coordonées données.
  `List<Cell>`
  `getCells()`
  `List<IConstraint>`
  `getConstraints()`
  `Cell`
  `getFirstEmptyCell()`
  Renvoie la 1re Cell vide du Sudoku.
  `int`
  `getSize()`
  `boolean`
  `hasConstraint(Constraint constraint)`
  `boolean`
  `isSolved()`
  Vérifie si le Sudoku est résolue, soit complet et cohérent avec ses contraintes.
  `boolean`
  `isValidCoords(int index)`
  Vérifie que l'index correspond bien à une Cell dans le Sudoku.
  `boolean`
  `isValidCoords(int x, int y)`
  Vérifie que des coordonnées correspondent bien à une Cell dans le Sudoku.
  `void`
  `setBlockWidth(int blockWidth)`
  `boolean`
  `setCellsSymbol(List<Integer> values)`
  Place les symboles d'index contenus dans values dans les cases du Sudoku.
  `Cell`
  `setCellSymbol(int x, int y, int value)`
  Place le symbole d'index value dans la Cell de coordonnées précisées.
  `boolean`
  `setImmutableCellsSymbol(List<Integer> values)`
  Place les symboles d'index contenus dans values dans les cases du Sudoku et rend ces cases immuables.
  `Coordinate`
  `toCoords(int index)`
  Transforme un index de Cell en Coordinate.
  `int`
  `toIndex(int x, int y)`
  Transforme des coordonées d'une Cell en index.
  `String`
  `toString()`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- ## Constructor Details

  - ### Sudoku

    public Sudoku(List<Cell> cells, List<Block> blocks, List<IConstraint> constraints)

- ## Method Details

  - ### toCoords

    public Coordinate toCoords(int index)
    Transforme un index de Cell en Coordinate.
    Parameters:
      `index` - int, index d'une Cell.
    Returns:
      Coordinate, correspondante à l'index donné.

  - ### toIndex

    public int toIndex(int x, int y)
    Transforme des coordonées d'une Cell en index.
    Parameters:
      `x` - int, abscisse.
      `y` - int, ordonnée.
    Returns:
      int, index correspondant.

  - ### isValidCoords

    public boolean isValidCoords(int x, int y)
    Vérifie que des coordonnées correspondent bien à une Cell dans le Sudoku.
    Returns:
      boolean, valant true si les coordonnées sont dans les bornes du Sudoku, false sinon.

  - ### isValidCoords

    public boolean isValidCoords(int index)
    Vérifie que l'index correspond bien à une Cell dans le Sudoku.
    Returns:
      boolean, valant true si l'index est dans les bornes du Sudoku, false sinon.

  - ### canBePlaced

    public boolean canBePlaced(int x, int y, int value)
    Teste si on peut placer la value dans la Cell aux coordonnées x, y d'après les contraintes du Sudoku.
    Parameters:
      `x` - int, abscisse de la Cell voulue.
      `y` - int, ordonnée de la Cell voulue.
      `value` - int, index du symbole qu'on veut placer.
    Returns:
      boolean, true si on peut la placer et false sinon.

  - ### isSolved

    public boolean isSolved()
    Vérifie si le Sudoku est résolue, soit complet et cohérent avec ses contraintes.
    Returns:
      boolean, valant true si le Sudoku est résolu, false sinon.

  - ### getCell

    public Cell getCell(int x, int y)
    Renvoie la Cell aux coordonées données.
    Parameters:
      `x` - int, abscisse.
      `y` - int, ordonnée.
    Returns:
      Cell, si une Cell existe aux coordonnées données, null sinon.

  - ### getFirstEmptyCell

    public Cell getFirstEmptyCell()
    Renvoie la 1re Cell vide du Sudoku.
    Returns:
      Cell, une Cell vide, ou null s'il n'y en a pas.

  - ### setCellSymbol

    public Cell setCellSymbol(int x, int y, int value)
    Place le symbole d'index value dans la Cell de coordonnées précisées.
    Parameters:
      `x` - int, abscisse de la Cell voulue.
      `y` - int, coordonnée de la Cell voulue.
      `value` - int, index du symbole à placer.
    Returns:
      Cell, la Cell qui a été modifiée.

  - ### setCellsSymbol

    public boolean setCellsSymbol(List<Integer> values)
    Place les symboles d'index contenus dans values dans les cases du Sudoku.
    Parameters:
      `values` - List~Integer~, liste des index des symboles à placer.
    Returns:
      boolean, vaut true si les symboles ont été placés, false sinon.

  - ### setImmutableCellsSymbol

    public boolean setImmutableCellsSymbol(List<Integer> values)
    Place les symboles d'index contenus dans values dans les cases du Sudoku et rend ces cases immuables.
    Parameters:
      `values` - List~Integer~, liste des index des symboles à placer.
    Returns:
      boolean, vaut true si les symboles ont été placés, false sinon.

  - ### hasConstraint

    public boolean hasConstraint(Constraint constraint)

  - ### getCell

    public Cell getCell(int i)

  - ### getSize

    public int getSize()

  - ### getCells

    public List<Cell> getCells()

  - ### getBlocks

    public List<Block> getBlocks()

  - ### getConstraints

    public List<IConstraint> getConstraints()

  - ### getBlockWidth

    public int getBlockWidth()

  - ### setBlockWidth

    public void setBlockWidth(int blockWidth)

  - ### toString

    public String toString()
    Overrides:
      `toString` in class `Object`