We visited the National Building Museum in Washington DC and my oldest son picked out a game called Roadblock in the gift shop. I was initially turned off by the subject matter, but the first time we played it I was intrigued by the puzzles and some questions I had about them:
- How many starting board permutations are possible with this set of pieces?
- What determines the difficulty of each starting board?
- Each starting board published in the Roadblock instructions has only only solution. Are there starting boards with multiple solutions? How many?
In seeking some answers to my questions I discovered polyominoes and the recursive backtracking algorithms used to solve polyomino puzzles. In particular, Matt Busche's Polycube turned out to be a great resource to help answer some of these questions.
So I created a simple ruby wrapper around the polycube binary called polycube-rb, and this repository to help answer some of the questions above.