From 93addf7ab050c5b508f79549e1359770c7116373 Mon Sep 17 00:00:00 2001 From: Carl Worth Date: Mon, 22 Dec 2014 13:07:35 -0800 Subject: [PATCH] Add blog post describing all of the history of the Christmas code. And link to decriptions of the puzzles for prior years. --- src/christmas_code.mdwn | 193 ++++++++++++++++++ .../{2014/index.mdwn => 2014.mdwn} | 3 +- 2 files changed, 195 insertions(+), 1 deletion(-) create mode 100644 src/christmas_code.mdwn rename src/christmas_code/{2014/index.mdwn => 2014.mdwn} (93%) diff --git a/src/christmas_code.mdwn b/src/christmas_code.mdwn new file mode 100644 index 0000000..7c3f6f1 --- /dev/null +++ b/src/christmas_code.mdwn @@ -0,0 +1,193 @@ +[[!meta title="Carl's Christmas Puzzle Hunt"]] + +[[!tag puzzles]] + +I've slipped into an accidental tradition of composing a puzzle hunt +for my sons every year at Christmas time. We call it "The Code" and +it's now one of the most anticipated events every December. + +If you'd like to see some examples of what the puzzles are like, you +can look at them here (or even try solving them yourself): + + * 2014 Christmas Puzzle Hunt + * 2013 Christmas Puzzle Hunt + * 2012 Christmas Puzzle + +As one might hope, I believe my puzzle-designing skills are improving +with practice. So hopefully the more recent puzzle above show some of +my better work. + +This tradition has become sufficiently involved that the history of +The Code really deserves to be captured. Here's the story of how it +all started, and how it's changed over the years. + +## On Keeping Christmas a Surprise: The Invention of The Code + +One year, my wife and I were lamenting to some friends that Christmas +gifts were losing their mystery at our house. Our boys were getting +good enough at poking, prodding, and predicting their presents that +there weren't a lot of surprises left for Christmas morning. Our +friends had had similar problems with their children, and we ended up +comparing notes on things we had done to keep gifts secret. + +One obvious tactic is to disguise a gift while wrapping it. This +technique has already been developed to an artform by our boys. They +love giving each other a large, wrapped gift which, when opened +reveals a smaller, wrapped gift inside. Then, like a set of matryoshka +dolls, that gift reveals a smaller, and smaller gift. In our family, +as soon as this unwrapping process is started, everyone knows what the +end result will be. The final few layers are so tiny that there's no +room for boxes anymore, just many, many layers of different colored +gift wrap and excessive amounts of tape. These last layers take a +tremendous amount of effort to get through. And the reward for all of +this hard work of unwrapping? Inevitably, it's a single penny. We +don't recall who wrapped the first penny, but it's now a standing +tradition where the boys try to outdo each other each year by +disguising a penny in the most elaborate way possible. + +Clearly, we're not willing to go to such heroic efforts to disguise +every gift we wrap. We had experimented with waiting to put the +Christmas gifts out under the tree until just before Christmas, but +that wasn't much fun. It robbed the boys of a lot of the fun +anticipation of seeing the gifts under the tree throughout December. + +Our friends shared an idea that had worked well in their family. What +they did was not write names on any of the gifts, but instead wrote a +single number on each gift indicating the recipient. And the method +for choosing the numbers was selected in a new and unpredictable way +each year. For example, one year my friend (who happens to be a +dentist) wrote the number of teeth that each child had lost on their +gifts. + +We thought this was a great idea, and we decided to give it a try. And +none of our Christmas gifts have had any of the boys' names on them +sense, (though they've had just about everything else possible). Read +on for a rundown of what we have done for the code for each year. + +## The Early Years: Locking the Code up Tight + +For the first year, we adopted a very simple strategy. We wrapped each +boys gifts in a unique color of wrapping paper. We didn't explain +anything, and when the boys asked why none of the gifts had names on +them, we were evasive. Then, on Christmas morning, we told them which +color of gift wrap corresponded to each boy. + +The second year, the boys correctly predicted that we wouldn't use the +same technique, and they immediately set about trying to crack "the +code" for the Christmas presents. They started convening secret +meetings to discuss theories. We discovered some of the notes from one +of the meetings and found that they had constructed an entire table +mapping out the following variables for each gift under the tree: +Wrapping paper color, Number of bows, Colors of bows, Picture on the +tag, Names on the tag. You see, this year, I did put tags on the +presents, but instead of their names I wrote the names of characters +from nonsense poetry: "To: The cat; From: The fiddle", "To: The cow; +From: The moon", "To: The dish; From: The spoon", etc. + +Their table was fairly effective. They were able to eliminate many +variables that couldn't work. If there were more colors of wrapping +paper tan children, they assumed that could ignore that. If there were +only one or two bows per present, they assumed that couldn't identify +one of the four boys. Fortunately for me, they didn't crack the code +that year, but only because their table hadn't accounted for the color +of ribbon on each present. + +By the third year, I realized that I had to put more thought into +designing the code. Here was an active group of intelligent agents +determined to find the information I was trying to hide. I was careful +this time to imagine every variable they could track, and ensure that +each variable appeared with four different values, evenly distributed +among the presents. I also ensured there was no correlation between +any of the variables. Grouping the presents by wrapping-paper color, +bows, ribbons, or anything else would always yield four entirely +different sets of presents. (So yes, this meant that now my wife and I +needed to consult our own table before we could know how to correctly +wrap each gift). + +Then, for the actual information, I chose two variables I thought they +would never track. We carefully folded the flaps on each gift either +in the same direction on each side or in opposite directions on each +side. Then we either folded all cut edges away to leave clean creases, +or left the raw edges exposed. This gave us four sets of presents: +Matching flaps creased, Matching flaps raw, Opposite flaps creased, +and Opposite flaps raw. + +Of course, the boys never even looked at the flaps, and all of their +attempts to find logical groups were foiled. When I revealed the +answer on Christmas morning, I was smug, thinking I had "won" by +creating a code they couldn't crack. Of course, the boys called me out +saying that what I had done was totally unfair. (How could it have +been unfair I thought? This was a game that I had invented myself?) +But the boys were totally right. My problem was thinking that this was +a game, when in fact, this should have been a puzzle. + +Years later, I read the book "Puzzle Craft" by Mike Selinker and +Thomas Snyder. In the introduction, Mike Selinker describes the lesson +that my boys were teaching me. He says that a game is a contest with +two equal sides and the outcome is in doubt, (either side has a +roughly equal chance to win). In contrast, a puzzle is a contest with +two wildly-unequal sides where the outcome is never in doubt, (the +weaker side will always win). When I treated The Code as a game, it +wasn't fun for any of us. The odds were stacked too much in my +favor---I could always create an impossible-to-solve puzzle, but who +has fun with a puzzle that's impossible to solve? That just leads to +frustration and giving up. A good puzzle, in contrast, has plenty of +frustration, but enough fun and reward that the solvers stick it +through to the end. So I needed to learn to create a puzzle. + +## The Code Today: The Code as a Puzzle + +My boys taught me that the code needed to be fair. That is, they +needed to be given enough information to be able to solve the +code. There could still be lots of deception and trickery, but they +needed to know that with perseverance, patience, and creativity they +could actually find the answer. They also gave me a second ground +rule: The solution to the code must be relevant and interesting. A +final answer of "you get the presents with the matching flaps with the +raw edges" doesn't cut it. Instead, the solution to the code should +actually point to the boys themselves. Basically, they were telling me +"Design us a puzzle", and "Make it a good puzzle", and it just took me +some time to figure that out. + +Christmas 2012 was the first year I approached The +Code as a puzzle. For that year, I labeled each present with nothing +more than a small QR code. Scanning the QR code linked to a web page +with a silly animated GIF, a solid-color background, some nonsense +poetry in the title, etc. Somewhere in all of that was a hidden +indication of who the intended recipient of each present was. So this +was simply one puzzle, and a lot of obfuscation. I thought this puzzle +would have been easier than it was, (a common problem for early puzzle +designers from what I understand). But the boys had a lot of fun with +it, and with some hints at the end, they figured things out by +Christmas. + +Christmas 2013 was the first year I stepped up and +instead of designing just one puzzle, I designed an entire puzzle +hunt. A puzzle hunt is a connected series of several puzzles. Many +puzzle hunts also included "meta-puzzles" where the solutions to +several puzzle combine to form a new puzzle. This was my first puzzle +hunt to design and it included 24 puzzles, 5 metapuzzles, and 1 final +metametapuzzle, (where the solutions to 4 previous metapuzzles had to +be combined in another puzzle) That was probably over-ambitious for my +first puzzle hunt, but it worked fairly well. There were a couple of +bugs in the puzzles that I should have caught with better testing in +advance. + +One thing I was really pleased with was that I intentionally +included every element from the previous puzzle, (animated GIFs, +random background colors, nonsense poetry, etc.). But where in 2012 +many of these elements were meaningless red herrings, in this year's +hunt, every element was used in at least one puzzle. I was also happy +that I included a mechanism for providing additional hints along the +way. (And I did this in a way that I could revise those hints before +the boys encountered them, so I could fine-tune the hints based on +where they were getting stuck.) That was very useful, and I used that +to my advantage again in 2014. + +Christmas 2014 was my second puzzle hunt, so it's +clearly now a new tradition that we won't give up for some +time. (We'll just need to adapt things when some of the boys move out +of the house, etc.). I do feel like I'm getting better at puzzle +design, and the boys are still having a lot of fun solving this. I +wrote up a blog post giving some of +my feedback on how the solving experience went this year. diff --git a/src/christmas_code/2014/index.mdwn b/src/christmas_code/2014.mdwn similarity index 93% rename from src/christmas_code/2014/index.mdwn rename to src/christmas_code/2014.mdwn index d3a8462..179d952 100644 --- a/src/christmas_code/2014/index.mdwn +++ b/src/christmas_code/2014.mdwn @@ -7,7 +7,8 @@ family as "The Code"). Read below for a summary of how things went, or check out the actual puzzles if you want to solve them yourself or just wonder at the amount of work my poor boys have to go through before they get any Christmas -presents. +presents. I've also written up a brief history of +the Christmas code linking to all the puzzles from previous years. I'm really pleased with how things went this year. I scaled the difficulty back compared to last year, and that was good for -- 2.43.0