# Sudoku Solver Visualization

**Tags:**D3 | Project-euler

While I was driving to work two Fridays ago, the idea to visualize a
Sudoku solver popped into my head. A few years back, I wrote a (pretty
bad) Sudoku solver to solve Project Euler Problem
96, and I wanted to *see* how it
worked. My original solver was written in Python, but I thought it
might be fun to port it into JavaScript and display the solution steps
with D3. The process turned out to be a lot less fun than I had
anticipated (mostly due to my confusion over how timers work in D3),
but I ended up getting everything working in the end. The result is
below:

My solver uses a *very greedy* guess-and-check algorithm that keeps
track of a lot of candidate moves at each step. It’s both bad in terms
of the number of steps required *and* the amount of RAM that it uses!
As such, the solver can take a very long time to run. The
preset frame rate for the visualization doesn’t help. (For example:
run the solver on boards #9 and #25).

Maybe I’ll come back to this at a later date to swap out the solver for something more reasonable. If that ever happens, I’ll probably just crib from this approach.