Choose your own Snakes and Ladders
I was in an exercise at work recently which involved visualising our last two weeks as a game of snakes and ladders: we drew a game board and labelled the ladders with things that had helped us progress, the snakes were things that hindered. (Sound like a good idea? We’re hiring!)
During this exercise I had a minor, irrelevant realization that the game of Snakes and Ladders was simply a finite-state machine with randomly-selected transitions. If you’re on square 17, you will always go to square 18, 19, 20, 21, 22 or 23 if you roll a 1, 2, 3, 4, 5 or 6 respectively. If you land on a square with a snake or ladder, you instantly transition to its other end.
I’d also been thinking recently about how Choose Your Own Adventure books (which are apparently properly called “gamebooks“) are also finite-state machines. From any one page in the gamebook, your transition options are finite and clearly defined.
Neither of these are particularly insightful observations, they’re just different ways of thinking about representation and codification. When you work with software, you think about this a lot (I’ve also been thinking about how to codify recipes recently).
The upshot of this is that I created a Choose Your Own Adventure style Snakes and Ladders game. It’s predictable, repetitive and relies completely on chance (as the original). I also think it’s strangely charming and I’d like to publish a physical copy sometime—I just need some cover art.