refactor: IConstraints in sudoku
Some checks failed
Linux arm64 / Build (push) Has been cancelled

This commit is contained in:
2025-02-01 22:24:26 +01:00
parent 3a009256c5
commit 275878932b
8 changed files with 145 additions and 81 deletions

View File

@@ -2,7 +2,7 @@ package gui;
import java.util.List;
import sudoku.constraint.Constraint;
import sudoku.constraint.IConstraint;
import sudoku.structure.MultiDoku;
import sudoku.structure.SudokuFactory;;
@@ -33,7 +33,7 @@ public enum SudokuType {
return this.displayName;
}
public MultiDoku createDoku(List<Constraint> constraints, int... params) {
public MultiDoku createDoku(List<IConstraint> constraints, int... params) {
return maker.makeSudoku(constraints, params);
}
@@ -43,7 +43,7 @@ public enum SudokuType {
@FunctionalInterface
private static interface SudokuMaker {
MultiDoku makeSudoku(List<Constraint> constraints, int... params);
MultiDoku makeSudoku(List<IConstraint> constraints, int... params);
}
private static final String[] dokuNames;

View File

@@ -11,6 +11,7 @@ import imgui.extension.imguifiledialog.flag.ImGuiFileDialogFlags;
import imgui.type.ImBoolean;
import imgui.type.ImInt;
import sudoku.constraint.Constraint;
import sudoku.constraint.IConstraint;
import sudoku.structure.Difficulty;
import sudoku.structure.MultiDoku;
import sudoku.structure.SudokuFactory;
@@ -40,18 +41,18 @@ public class SudokuSelector {
initConstraints();
}
private List<Constraint> getConstraints() {
List<Constraint> constraints = new ArrayList<>();
private List<IConstraint> getConstraints() {
List<IConstraint> constraints = new ArrayList<>();
for (int i = 0; i < this.contraints.size(); i++) {
if (this.contraints.get(i).get())
constraints.add(Constraint.values()[i]);
constraints.add(Constraint.values()[i].getConstraint());
}
return constraints;
}
private void initConstraints() {
for (Constraint cons : Constraint.values()) {
contraints.add(new ImBoolean(SudokuFactory.DEFAULT_CONSTRAINTS.contains(cons)));
contraints.add(new ImBoolean(SudokuFactory.DEFAULT_CONSTRAINTS.contains(cons.getConstraint())));
}
}