From 86989d447ee527551ec820e853832006f03506d8 Mon Sep 17 00:00:00 2001 From: "NIHART, Jeremi" Date: Sun, 8 Sep 2024 18:12:53 +0200 Subject: [PATCH] chore: add some notes --- .../Algorithms/BackTrackingSolver.cs | 6 ++++++ src/EndMove.Sudoku.Solver.Core/Program.cs | 2 ++ 2 files changed, 8 insertions(+) diff --git a/src/EndMove.Sudoku.Solver.Core/Algorithms/BackTrackingSolver.cs b/src/EndMove.Sudoku.Solver.Core/Algorithms/BackTrackingSolver.cs index c3fe046..1365947 100644 --- a/src/EndMove.Sudoku.Solver.Core/Algorithms/BackTrackingSolver.cs +++ b/src/EndMove.Sudoku.Solver.Core/Algorithms/BackTrackingSolver.cs @@ -4,6 +4,12 @@ public class BackTrackingSolver : SolverBase { public BackTrackingSolver(Action displayBoard) : base(displayBoard) { } + /** + * note for future me : + * - Maybe pre-process the board to get the empty cells and already know used values per row, col and box + * - Maybe keep a track of the current index to avoid searching for the next empty cell in the all 2d array + * - Maybe avoid using negation + */ public override (bool, int[,]) Solve(int[,] board) { int row = -1, col = -1; diff --git a/src/EndMove.Sudoku.Solver.Core/Program.cs b/src/EndMove.Sudoku.Solver.Core/Program.cs index e6f0f2c..03c8bc2 100644 --- a/src/EndMove.Sudoku.Solver.Core/Program.cs +++ b/src/EndMove.Sudoku.Solver.Core/Program.cs @@ -58,7 +58,9 @@ namespace EndMove.Sudoku.Solver.Core SudokuUtils.TwoDTo1D(store[0], out int[] sudoku1D); SudokuUtils.DisplayBoard(sudoku1D); + // TODO improve 2D backtracking solver // TODO 1D solver with backtracking + // TODO Add time measurement ISolver solver = new BackTrackingSolver(SudokuUtils.DisplayBoard); var (status, lol) = solver.Solve(store[0]);