Hey! I'm David, a security engineer at the Blockchain team of Facebook, previously a security consultant for the Cryptography Services of NCC Group. This is my blog about cryptography and security and other related topics that I find interesting.

# Sudoku Solver posted November 2013

My Programmmation class first part is about coding a sudoku solver. We have to do everything in english, we have to commit with svn, we have to write a final report with LaTeX.

Every week we're given some vague guidelines and we have to dive deep into C to first, understand what we have to do, and secondly, find solutions in a language we've never really played with before. We have to turn in what we did every week, if our code doesn't compile it's a zero, if it does compile it goes through a multitude of tests that quickly decrease your grade (out of 20). Let's just say I spent many nights and early mornings coding and I started the first week with a 2/20.

It felt like a crash course, it felt unfair at times, but holy cow did I learn some C in a really short amount of time. Props to my professor for that, and I wish I had more courses like that. I might not get the best grade out of this course but I sure learn the most things there.

I've also committed everything I've done on a public git repo so everyone can see how it looks like here :

https://github.com/mimoo/sudoku

You can compile with make, learn how to use with ./sudoku -h

It can read sudokus of different sizes from 1x1 to 64x64 as long as it is presented like this :

#this is a comment

5 3 _ _ 7 _ _ _ _

6 _ _ 1 9 5 _ _ _

_ 9 8 _ _ _ _ 6 _

8 _ _ _ 6 _ _ _ 3

4 _ _ 8 _ 3 _ _ 1

7 _ _ _ 2 _ _ _ 6

_ 6 _ _ _ _ 2 8 _

_ _ _ 4 1 9 _ _ 5

_ _ _ _ 8 _ _ 7 9
Well done! You've reached the end of my post. Now you can leave me a comment :)