Skip to content

Releases: allenk/SudokuSolver

v1.0.2

Choose a tag to compare

@github-actions github-actions released this 18 Dec 14:14

v1.0.2 Release

FEATURES

  • Add --solve-all option to find all solutions (default limit: 100)
  • Add --max-solutions N to set solution limit (0 = unlimited)
  • Add name and difficulty metadata support for JSON puzzles
  • Display puzzle metadata (name, difficulty) when present
  • Add throughput display for single-threaded benchmarks

BUG FIXES

  • Fix invalid 16x16 built-in puzzle (was unsolvable)
  • Fix unlimited solution search bug (maxSolutions=0)
  • Remove redundant APP_VERSION macro (defined in CMakeLists.txt)

CI IMPROVEMENTS

  • Skip CI builds for non-code changes (*.md, docs/, LICENSE)
  • Add single-threaded benchmark test (-b 100 -t 25)

BENCHMARK RESULTS (Single-threaded, 25x25 puzzle)

  • WSL2 9950X3D: 57.43 puzzles/sec
  • Windows 9950X3D: 51.90 puzzles/sec
  • Android SD8G3: 39.27 puzzles/sec
  • macOS M1 (VM): 31.39 puzzles/sec

NEW CLI OPTIONS
--solve-all Find all solutions
--max-solutions N Limit solutions (0 = unlimited)

EXAMPLE USAGE
SudokuSolver -t 9 --solve-all
SudokuSolver -i puzzle.json --solve-all --max-solutions 10
SudokuSolver -i puzzle.json --solve-all -o solutions.json

v1.0.1

Choose a tag to compare

@github-actions github-actions released this 16 Dec 15:43

v1.0.1 - Cross-Platform Support & Enhanced System Detection

πŸš€ Multi-Platform Build Support

  • CMakePresets.json for Windows, Linux, macOS, Android
  • Conditional Tesseract OCR compilation (HAS_TESSERACT)
  • vcpkg integration with platform-specific triplets
  • Static linking for portable binaries

πŸ€– GitHub Actions CI/CD

  • Automated builds for Windows, Linux, macOS
  • Cross-platform testing with built-in puzzles (-t 9/16/25)
  • Release artifact publishing

πŸ“± Enhanced System Detection

  • Android: SoC detection (Snapdragon, Dimensity, Exynos, Tensor)
  • Android: ARM CPU Part ID lookup (Cortex-X4, A720, A520)
  • macOS: Apple Silicon detection with reference clock
  • macOS: Version codename mapping (Sequoia, Sonoma, etc.)
  • Linux: Full /proc/cpuinfo parsing

πŸ”§ Build Fixes

  • CMake target ordering for cross-platform compatibility
  • Added #include for GCC/Clang
  • Fixed MSVC type conversion warnings
  • Optimized OpenCV features to avoid fontconfig dependency
  • Built-in test puzzles for CI benchmarks

πŸ“Š Benchmark Highlights

Platform CPU DLX/s Efficiency
Windows Ryzen 9950X3D 885.59/s 55.25%
WSL2 Ryzen 9950X3D 903.59/s 49.92% ⭐
macOS CI Apple M1 (VM) 94.92/s 98.75% ⭐
Android SD 8 Gen 3 105.31/s 34.23%

πŸ”¬ Key Findings

  • WSL2 DLX outperforms native Windows by 2%
  • GCC excels at DLX (pointer ops), MSVC at Backtracking (recursion)
  • Apple Silicon achieves 98.75% efficiency (UMA advantage)
  • Compiler optimization > OS virtualization overhead

Platform Support:

Platform Solver Benchmark OCR
Windows x64 βœ… βœ… βœ…
Linux x64 βœ… βœ… βœ…
macOS (Intel/ARM) βœ… βœ… βœ…
Android ARM64 βœ… βœ… ❌

v1.0.0 - Initial Release

Choose a tag to compare

@allenk allenk released this 04 Dec 01:17

πŸŽ‰ Initial Release

High-performance Sudoku Solver with multiple algorithms and OCR support.

✨ Features

  • Algorithms

    • Dancing Links (DLX) - optimal for large puzzles & multi-threading
    • Backtracking with Constraint Propagation - fast for 9x9
  • OCR Support - Extract puzzles from images (requires eng.traineddata)

  • Benchmarking - Multi-threaded performance analysis with system info detection

  • Puzzle Support - 9x9 and 16x16 grids

πŸ“Š Benchmark Highlights

Puzzle Algorithm Throughput (Ryzen 9 9950X3D)
16x16 DLX 23,075 solves/sec
9x9 Backtracking 204,557 solves/sec

πŸ“₯ Downloads

File Description
SudokuSolver-v1.0.0-win-x64.zip Windows x64 binary (Release build)

πŸ“‹ Requirements

πŸš€ Quick Start

# Solve puzzle
SudokuSolver.exe -i puzzle.json

# Benchmark
SudokuSolver.exe -i puzzle.json -b 1000 -w 0

# Show help
SudokuSolver.exe --help

# πŸ“ Binary File
SudokuSolver-v1.0.0-win-x64.zip

Contents of ZIP file :

SudokuSolver-v1.0.0-win-x64/
β”œβ”€β”€ SudokuSolver.exe
β”œβ”€β”€ tessdata/           (Empty folder; prompt user to place eng.traineddata)
└── examples/