diff --git a/app/src/main/java/gui/SudokuRenderer.java b/app/src/main/java/gui/SudokuRenderer.java index f7b0eb3..6e2a73d 100644 --- a/app/src/main/java/gui/SudokuRenderer.java +++ b/app/src/main/java/gui/SudokuRenderer.java @@ -37,15 +37,23 @@ public class SudokuRenderer { } private void renderPopup() { + final ImVec2 buttonSize = new ImVec2(50, 50); if (ImGui.beginPopup("editPopup")) { Block block = currentCell.getBlock(); int symbolCount = block.getCells().size(); - for (int i = 1; i < symbolCount + 1; i++) { - if (i % (int) (Math.sqrt(symbolCount)) != 1) + for (int i = 0; i < symbolCount; i++) { + if ((i + 1) % (int) (Math.sqrt(symbolCount)) != 1) ImGui.sameLine(); - if (ImGui.button(Integer.toString(i), new ImVec2(50, 50))) { - this.doku.setCellValue(currentCell, i - 1); - ImGui.closeCurrentPopup(); + if (currentCell.getSymbolIndex() == i) { + if (ImGui.button("X", buttonSize)) { + currentCell.setSymbolIndex(Cell.NOSYMBOL); + ImGui.closeCurrentPopup(); + } + }else { + if (ImGui.button(Integer.toString(i + 1), buttonSize)) { + this.doku.setCellValue(currentCell, i); + ImGui.closeCurrentPopup(); + } } } ImGui.endPopup(); diff --git a/app/src/main/java/gui/menu/SoloMenu.java b/app/src/main/java/gui/menu/SoloMenu.java index b03ca5d..6eba3b5 100644 --- a/app/src/main/java/gui/menu/SoloMenu.java +++ b/app/src/main/java/gui/menu/SoloMenu.java @@ -31,7 +31,8 @@ public class SoloMenu extends BaseView { level += sudoku.getSize() * sudoku.getSize() / 10 * 3; } Solver.solve(doku); - SudokuFactory.newDokuFromFilledOne(doku, level - 1); + level = (level - 1) / doku.getNbSubGrids(); + SudokuFactory.newDokuFromFilledOne(doku, level); for (Sudoku sudoku : doku.getSubGrids()) { for (Cell cell : sudoku.getCells()) { if (cell.getSymbolIndex() != Cell.NOSYMBOL) {