From 1f92c49f3ce1d742c31b9308f785bfb747c75aad Mon Sep 17 00:00:00 2001 From: Persson-dev Date: Thu, 30 Jan 2025 17:28:43 +0100 Subject: [PATCH] feat: select solve algorithm --- app/src/main/java/gui/menu/SudokuView.java | 66 ++++++++++++++++------ 1 file changed, 48 insertions(+), 18 deletions(-) diff --git a/app/src/main/java/gui/menu/SudokuView.java b/app/src/main/java/gui/menu/SudokuView.java index 873609b..8614d2c 100644 --- a/app/src/main/java/gui/menu/SudokuView.java +++ b/app/src/main/java/gui/menu/SudokuView.java @@ -66,34 +66,64 @@ public class SudokuView extends BaseView { stopResolve(); } + private void renderSolvePopup() { + if (ImGui.beginPopup("solve")) { + if (ImGui.button("Résoudre avec backtrace")) { + resolveThread = new Thread(() -> { + try { + Random rand = new Random(); + Solver.randomSolve(doku, rand); + } catch (CancellationException e) { + System.out.println("The user is bored !"); + } + stopResolve(); + }); + ImGui.closeCurrentPopup(); + } + if (ImGui.button("Résoudre avec déduction")) { + resolveThread = new Thread(() -> { + try { + Solver.humanSolve(doku); + } catch (CancellationException e) { + System.out.println("The user is bored !"); + } + stopResolve(); + }); + ImGui.closeCurrentPopup(); + } + if (ImGui.button("Résoudre avec déduction et backtrace")) { + resolveThread = new Thread(() -> { + try { + Random rand = new Random(); + Solver.mixedSolve(doku, rand); + } catch (CancellationException e) { + System.out.println("The user is bored !"); + } + stopResolve(); + }); + ImGui.closeCurrentPopup(); + } + ImGui.endPopup(); + } + } + private void renderSolveButton() { if (resolveThread != null) ImGui.beginDisabled(); - boolean beginSolve = false; - - if (!resolved && centeredButton("Résoudre")) { - beginSolve = true; + if (!this.resolved && centeredButton("Résoudre")) { + // beginSolve = true; + ImGui.openPopup("solve"); } + if (resolveThread != null) ImGui.endDisabled(); - if (beginSolve) { - resolveThread = new Thread(() -> { - try { - Random rand = new Random(); - Solver.randomSolve(doku, rand); - Thread.sleep(200); - } catch (CancellationException | InterruptedException e) { - System.out.println("The user is bored !"); - } - stopResolve(); - }); - } - - if (resolved) { + if (this.resolved) { ImGui.text("Bravo !"); } + + renderSolvePopup(); } private void renderSaveButton() {