Class SudokuFactory

java.lang.Object
sudoku.structure.SudokuFactory

public class SudokuFactory extends Object
  • 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~