Package sudoku.structure

# Class SudokuFactory

java.lang.Object
sudoku.structure.SudokuFactory

public class SudokuFactory extends Object

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static List<IConstraint>`
  `DEFAULT_CONSTRAINTS`
  Liste des contraintes par défaut d'un Multi- ou Sudoku.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `SudokuFactory()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static MultiDoku`
  `createBasicEmptyRandomBlockDoku(int blockSize, List<IConstraint> constraints)`
  Crée un Sudoku vide avec les Blocks aléatoires.
  `static MultiDoku`
  `createBasicEmptyRectangleDoku(int widthBlock, int heightBlock, List<IConstraint> constraints)`
  Créée un MultiDoku vide dont les Blocks sont de taille widthBlock par heightBlock.
  `static MultiDoku`
  `createBasicEmptySquareDoku(int size, List<IConstraint> constraints)`
  Créée un MultiDoku vide dont les Blocks sont carrés de longueur size.
  `static MultiDoku`
  `createBasicPlusShapedMultidoku(int width, int height, List<IConstraint> constraints)`
  Créée un MultiDoku de Blocks rectangulaires de forme +, de taille width par height composé de cinq Sudokus, dont un central qui partage chacun de ses Blocks de bord avec un autre Sudoku. 3 2 1 4 5
  `static MultiDoku`
  `createBasicPlusShapedMultidoku(int size, List<IConstraint> constraints)`
  Créée un MultiDoku de Blocks carrés de forme +, de taille size composé de cinq Sudokus, dont un central qui partage chacun de ses Blocks de bord avec un autre Sudoku. 3 2 1 4 5
  `static MultiDoku`
  `createBasicXShapedMultidoku(int width, int height, List<IConstraint> constraints)`
  Créée un MultiDoku de Blocks rectangulaires de forme X, de taille width par height composé de cinq Sudokus, dont un central qui partage chacun de ses Blocks d'angle avec un autre Sudoku. 2 3 1 4 5
  `static MultiDoku`
  `createBasicXShapedMultidoku(int size, List<IConstraint> constraints)`
  Créée un MultiDoku de Blocks carrés de taille size composé de cinq Sudokus, dont un central qui partage chacun de ses Blockss d'angle avec un autre Sudoku. 2 3 1 4 5
  `static void`
  `fillDoku(MultiDoku doku, Difficulty difficulty)`
  Rempli un MultiDoku donné par rapport à un difficulté.
  `static List<IConstraint>`
  `fromConstraints(List<Constraint> constraints)`
  Transforme des Constraints en IConstraints correspondants.
  `static MultiDoku`
  `fromfile(String filePath)`
  Génère un MultiDoku à partir d'un fichier de sauvegarde.
  `static boolean`
  `newDokuFromFilledOne(MultiDoku doku, int nbCellsToEmpty, Solver solver)`
  Créée un MultiDoku de difficulté difficulty à partir d'un MultiDoku fourni.

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

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

- ## Field Details

  - ### DEFAULT_CONSTRAINTS

    public static List<IConstraint> DEFAULT_CONSTRAINTS
    Liste des contraintes par défaut d'un Multi- ou Sudoku. Comprend les contraintes de blocs, de lignes, et de colonnes.

- ## Constructor Details

  - ### SudokuFactory

    public SudokuFactory()

- ## Method Details

  - ### createBasicEmptyRectangleDoku

    public static MultiDoku createBasicEmptyRectangleDoku(int widthBlock, int heightBlock, List<IConstraint> constraints)
    Créée un MultiDoku vide dont les Blocks sont de taille widthBlock par heightBlock.
    Parameters:
      `widthBlock` - int, largeur des Blocks.
      `heightBlock` - int, hauteur des Blocks.
    Returns:
      MultiDoku, MultiDoku vide.

  - ### createBasicEmptySquareDoku

    public static MultiDoku createBasicEmptySquareDoku(int size, List<IConstraint> constraints)
    Créée un MultiDoku vide dont les Blocks sont carrés de longueur size.
    Parameters:
      `size` - int, taille des Blocks.
    Returns:
      MultiDoku, MultiDoku vide.

  - ### createBasicXShapedMultidoku

    public static MultiDoku createBasicXShapedMultidoku(int size, List<IConstraint> constraints)
    Créée un MultiDoku de Blocks carrés de taille size composé de cinq Sudokus, dont un central qui partage chacun de ses Blockss d'angle avec un autre Sudoku. 2 3 1 4 5
    Parameters:
      `size` - int, largeur des Blocks unitraires des Sudokus à crééer.
    Returns:
      MultiDoku, MultiDoku de forme X.

  - ### createBasicXShapedMultidoku

    public static MultiDoku createBasicXShapedMultidoku(int width, int height, List<IConstraint> constraints)
    Créée un MultiDoku de Blocks rectangulaires de forme X, de taille width par height composé de cinq Sudokus, dont un central qui partage chacun de ses Blocks d'angle avec un autre Sudoku. 2 3 1 4 5
    Parameters:
      `width` - int, largeur des Blocks unitaires des Sudokus à crééer.
      `height` - int, hauteur des Blocks unitaires des Sudokus à crééer.
    Returns:
      MultiDoku, MultiDoku de forme X.

  - ### createBasicPlusShapedMultidoku

    public static MultiDoku createBasicPlusShapedMultidoku(int size, List<IConstraint> constraints)
    Créée un MultiDoku de Blocks carrés de forme +, de taille size composé de cinq Sudokus, dont un central qui partage chacun de ses Blocks de bord avec un autre Sudoku. 3 2 1 4 5
    Parameters:
      `size` - int, largeur des Blocks unitaires des Sudokus à crééer.
    Returns:
      MultiDoku, MultiDoku de forme +.

  - ### createBasicPlusShapedMultidoku

    public static MultiDoku createBasicPlusShapedMultidoku(int width, int height, List<IConstraint> constraints)
    Créée un MultiDoku de Blocks rectangulaires de forme +, de taille width par height composé de cinq Sudokus, dont un central qui partage chacun de ses Blocks de bord avec un autre Sudoku. 3 2 1 4 5
    Parameters:
      `width` - int, largeur des Blocks unitaires des Sudokus à crééer.
      `height` - int, hauteur des Blocks unitaires des Sudokus à crééer.
    Returns:
      MultiDoku, MultiDoku de forme +.

  - ### createBasicEmptyRandomBlockDoku

    public static MultiDoku createBasicEmptyRandomBlockDoku(int blockSize, List<IConstraint> constraints)
    Crée un Sudoku vide avec les Blocks aléatoires.
    Parameters:
      `blockSize` - int, la taille des Block.
      `constraints` - List~IConstraint~, la liste des contraintes.
    Returns:
      MultiDoku, avec un seul Sudoku.

  - ### newDokuFromFilledOne

    public static boolean newDokuFromFilledOne(MultiDoku doku, int nbCellsToEmpty, Solver solver) throws Exception
    Créée un MultiDoku de difficulté difficulty à partir d'un MultiDoku fourni.
    Parameters:
      `doku` - MultiDoku, MultiDoku dont on doit vider des Cells.
      `nbCellsToEmpty` - int, nombre de cases à retirer.
    Returns:
      boolean, valant true si un MultiDoku de difficulté donnée peut être créée, false sinon.
    Throws:
      `Exception` - si la difficulté n'est pas compatible avec la taille du MultiDoku.

  - ### fillDoku

    public static void fillDoku(MultiDoku doku, Difficulty difficulty) throws Exception
    Rempli un MultiDoku donné par rapport à un difficulté.
    Parameters:
      `doku` - MultiDoku, vide.
      `difficulty` - Difficulty, qui correspond au pourcentage de cases à enlever.
    Throws:
      `Exception`

  - ### fromfile

    public static MultiDoku fromfile(String filePath)
    Génère un MultiDoku à partir d'un fichier de sauvegarde.
    Parameters:
      `filePath` - String, chemin du fichier.
    Returns:
      MultiDoku.

  - ### fromConstraints

    public static List<IConstraint> fromConstraints(List<Constraint> constraints)
    Transforme des Constraints en IConstraints correspondants.
    Parameters:
      `constraints` - List~Constraints~
    Returns:
      List~IConstraints~