I've spent enough time on this :) I have 2 maze creation algorithms, and 2 maze solving algorithms. I didn't implement a command-line options interface, but that would be trivial to do. I think it's a decent enough API. I don't like my solution because it has too many capital letters, due to the fact that methods are not first-class objects and I wanted to pass around the building and solving algorithms. http://www.dave.burt.id.au/ruby/maze.rb Cheers, Dave