A Sudoku solver and Ruby experiment
Find a file
2010-05-26 15:42:14 +02:00
.gitignore Changed .gitignore 2009-07-24 22:31:23 +02:00
algorithm.rb Moved files up in new hierarchy 2010-05-26 15:42:14 +02:00
README.txt Moved files up in new hierarchy 2010-05-26 15:42:14 +02:00
solve Moved files up in new hierarchy 2010-05-26 15:42:14 +02:00
solve-pragpub Moved files up in new hierarchy 2010-05-26 15:42:14 +02:00
solver.rb Moved files up in new hierarchy 2010-05-26 15:42:14 +02:00
solver_spec.rb Moved files up in new hierarchy 2010-05-26 15:42:14 +02:00
stats_keeper.rb Moved files up in new hierarchy 2010-05-26 15:42:14 +02:00
sudoku_exceptions.rb Moved files up in new hierarchy 2010-05-26 15:42:14 +02:00
sudoku_puzzle.rb Moved files up in new hierarchy 2010-05-26 15:42:14 +02:00
sudoku_puzzle_spec.rb Moved files up in new hierarchy 2010-05-26 15:42:14 +02:00
TODO.txt Moved files up in new hierarchy 2010-05-26 15:42:14 +02:00
trial_error_algorithm.rb Moved files up in new hierarchy 2010-05-26 15:42:14 +02:00
trial_error_algorithm_spec.rb Moved files up in new hierarchy 2010-05-26 15:42:14 +02:00

This Sudoku solver was created as a way for me to play with some
concepts I've been thinking about.

At first I wanted to do this in a functional language, eg. Haskell or
Erlang (as a way of learning functional thinking).
But I found it difficult to think about problems without thinking in
terms of objects.

So I chose Ruby as a way to flesh out the problem space.
Primarily because:
 1. Ruby is conceptually similar to the languages I know best (Smalltalk
 and Python)
 2. I'm bored with Python
 3. Smalltalk is my day job, and this is for fun.

Specific concepts that I'm thinking about:
 - Immutability. What would happen if I treated objects as if they
 cannot be modified?
 - Biological systems. What would happen if I thought of my Sudoku
 solver as some sort of life form that eats puzzles for breakfast? What can I learn
 from the amazing design of existing biological systems?

This code can be used under the terms of the GPL version 2.
(I haven't looked at version 3 yet)

Contact me if you want to use it under a different license.

Andreas Pauley
Gmail: apauley (complete the rest of the address yourself)