SudokuH – Fast Sudoku Solver in Haskell

GUI might not be beautiful, but it does the job

Edit: You can find out more about how SudokuH works in the separate blog post – Anatomy of a CSP solver

Do you like solving Sudoku? To be honest, I am not a huge fan of it – not sure if I had solved even one by myself. I find it a bit of a waste of time. During an AI course I had in uni, however, we wrote a fancy Constraint Satisfaction Problem (CSP) solver. Mine happened to be the fastest in the class, and despite the fact that I did win some chocolates and fame, I thought I can exploit it further. Thus, SudokuH was born – a GUI Sudoku Solver using MAC+MRV algorithm written in Haskell.

Now, now, don’t get too excited. It works under Linux only right now, and it’s interface won’t win any design awards. But it does work, and it is blindingly quick*.

You can find everything in it’s Github repository. Instructions are in… well… the README.

Now, you might be thinking – all cool, but what’s the point in having a program like this when most people are solving Sudoku for fun (and to waste time)? Well, it has more theoretical than practical value, I agree, but I was able to think of a usage scenario. You know how sometimes newspapers and magazines have competitions for solving Sudoku puzzles? Well, there you go – input it in SudokuH, press Solve, and profit. I know people who won prizes from these competitions! (TV, even)

Right, I feel better now, my work has not been meaningless. But let’s face it, if you are interested in SudokuH, that’s most probably because you want to see its bowels (how it works, I mean). I will be happy to explain… Anatomy of a CSP solver! 🙂

* You really can’t see it thinking.**
** If you close your eyes and open them after 1-3.5 seconds, that is.


One response to “SudokuH – Fast Sudoku Solver in Haskell

  1. Pingback: Anatomy of a CSP solver | Primal Pond


Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s