Solving a Robot Turtles maze

Learning to Code F# with Robot Turtles

Robot Turtles is a game designed to teach programming fundamentals to young children. I purchased a copy through the Kickstarter launch and have been playing it since with my four-year old son. He loves the game and quickly unlocked all the levels up to “Play 3.”

At the same time, I’ve been intending to learn F# for a while…

My love of functional programming grew via the Scala language during my employment at Snapsort / Sortable. But admittedly, I don’t like using the JVM and related Scala tools (Eclipse, maven, sbt, etc).

On the other hand, I have over ten years of experience with C# and I love using Visual Studio. So it seems that F# is the next logical step that gives me functional programming and the .NET Framework.

So, I figured, what better way to learn F# than by writing a game solver for a game that teaches programming fundamentals? :)

It took me some evenings and a weekend… some trips to MSDN, Wikipedia and Stack Overflow… and I came out the other side with some basic competence in F# and a project to show for it.

DR |> TL

Check out the source at PhilipDavis/RobotTurtles on GitHub.

What’s Next

I’m not finished learning F# yet.

Some other projects I’ve considered include an online Robot Turtles maze repository to help me learn Angular.js with F# (and maybe Suave.io); and a Robot Turtles maze layout recognizer that uses AI to process a photo of a game board and translate it into a machine-readable format — because I take a photo of every board before my son starts playing.

Put it all together and I’ll be able to snap a photo of the game board and instantly upload it to the layout repo… and have the repo respond with the optimal solution. :)


Technically, I started learning F# by solving problems in Project Euler. I learned a lot after the first few problems… but after a couple dozen problems, I wasn’t learning any new F#… I was just re-learning all the math I’d been exposed to in high school and university.

Robot Turtles is among the trademarks of Robot Turtles LLC, used here by permission