semi-functionning console interface
All checks were successful
Linux arm64 / Build (push) Successful in 38s

This commit is contained in:
Janet-Doe
2025-01-30 11:51:17 +01:00
parent d4beaec8a8
commit f1d963e546
7 changed files with 191 additions and 951 deletions

View File

@@ -246,6 +246,38 @@ public class SudokuFactory {
return new MultiDoku(Arrays.asList(sudoku1, sudoku2, sudoku3, sudoku4, sudoku5));
}
/**
* Créée un MultiDoku de Blocks rectangulaires de forme width par height composé de cinq Sudokus,
* dont un central qui partage chacun de ses Blocks d'angle avec un autre
* Sudoku.
*
* @param width int, largeur des Blocks unitraires des Sudokus à crééer.
* @param height int, hauteur des Blocks unitraires des Sudokus à crééer.
* @return MultiDoku, MultiDoku de forme X.
*/
public static MultiDoku createBasicXShapedMultidoku(int width, int height, List<Constraint> constraints) {
assert (width > 1 && height > 1);
/*
* 2 3
* 1
* 4 5
*/
Sudoku sudoku1 = createRectangleSudoku(width, height, constraints);
Sudoku sudoku2 = createRectangleSudoku(width, height, constraints);
Sudoku sudoku3 = createRectangleSudoku(width, height, constraints);
Sudoku sudoku4 = createRectangleSudoku(width, height, constraints);
Sudoku sudoku5 = createRectangleSudoku(width, height, constraints);
linkSquareSudokus(sudoku1, sudoku2, new Coordinate(1 - width, 1 - height));
linkSquareSudokus(sudoku1, sudoku3, new Coordinate(width - 1, 1 - height));
linkSquareSudokus(sudoku1, sudoku4, new Coordinate(1 - width, height - 1));
linkSquareSudokus(sudoku1, sudoku5, new Coordinate(width - 1, height - 1));
return new MultiDoku(Arrays.asList(sudoku1, sudoku2, sudoku3, sudoku4, sudoku5));
}
public static void fillDoku(MultiDoku doku, Difficulty difficulty) throws Exception {
Solver.solveRandom(doku, random);
int nbCellsToEmpty = (int) (difficulty.getFactor() * doku.getNbCells());