I am reading the rather excellent Mazes For Programmers by Jamis Buck, and am following along, building my own mazes.
As you can see from pretty much every review of the book, the one (and generally single) criticism everyone has is that the code samples are in Ruby. This is not altogether surprising as the author was one of the Ruby On Rails core team, but it does cut out the vast majority of developers who are not familiar with Ruby. Had the samples been in a C-style language (C++, C#, Java, JavaScript, etc), it would have been instantly accessible to a vast amount of developers.
However, I viewed this as an opportunity to learn a new language, and dutifully installed Ruby. It took me a bit of struggling to get this all working (they don't make it easy), but I got there. Armed with a quick Ruby tutorial, I got myself familiar with the basic syntax and got to work.
It didn't take me long to cross Ruby off the list of languages that I want to learn. Before anyone jumps on me for that, it's not a criticism, it's just that I haven't yet seen any advantages to using Ruby over my current toolset. Realising that apart from being fun, writing maze generation and solving code held the key to understanding some interesting and possibly useful algorithms, I decided to drop Ruby and develop my own C# code.
Whilst this was a little frustrating, as it required me to understand the author's code a lot more deeply than I would have done otherwise, it had the big advantage of requiring me to understand the author's code a lot more deeply than I would have done otherwise! Copying code from a book doesn't make you study it properly. Trying to convert it to another language means you have to.
This repository holds my code samples. No idea if anyone will ever find these useful, but who knows! Please feel free to download my code and play with it. I would be interested to hear if anyone has any comments.
I have been blogging about my progress as a maze-master (ha ha). Please see my blog series on coding mazes.