The Bricklayer's Challenge
This Spring, I once again attended the Gathering for Gardner, that eclectic (or is that eccentric?) conference bringing together mathematicians, puzzlers, and stage magicians for talks, conversation, demonstrations, and fun. One thing that particularly caught my eye this year was a large, beautiful, wooden tray puzzle that the mathematician and writer Barry Cipra was showing off. You can see my snapshot of it to the right.
As any good mason knows, when you're laying courses of bricks, you want to avoid having the cracks between bricks in one row lining up with the cracks in other rows: aligned cracks tend to make the wall weaker. This puzzle puts you in the role of a bricklayer with very high standards indeed: you must arrange the bricks such that no crack in one row lines up with a crack in any other row!
After playing with Barry's puzzle for a little while, I knew that I wanted to make my own version of it.
Then, to give the solving experience a little more texture, I wrote some software to help me craft a set of increasingly difficult challenges. The first is just to lay out the pieces as I described above, and there are 2,184 solutions to that. The next challenge is to find a solution that has 180° symmetry, one where the solution looks the same after you turn it upside down (other than the colors, of course); there are only 56 solutions to that one. The third challenge is to ignore that symmetry idea and, instead, to find a solution where no two pieces of the same size (4 units or less) overlap each other vertically; that takes us down to just 5 solutions. Finally, you have to find a solution that obeys both of those last two constraints: 180° symmetry and no same-size overlaps. That final challenge has (wait for it...) exactly one solution.
What I particularly like about this puzzle is that it spans a nice range of difficulty: the first challenge should yield to anyone who puts any patience into it, but solving all four challenges should keep most solvers busy for a nice little while...