I have started writing one of the algorithms I will use to solve Sudokus
- the hill climbing algorithm.  I will be using first choice hill
climbing with random restarts, as the base algorithm seems inefficient
at best and ineffective at worst.  

For the time being, I have chosen to give each local search algorithm
its own class.  Later on, if I see that it's a better way, I might
create a local search class and make each algorithm inherit from it.