]> git.cworth.org Git - cworth.org/blob - src/christmas_code.mdwn
Add Robert Haight as another solver
[cworth.org] / src / christmas_code.mdwn
1 [[!meta title="Carl's Christmas Puzzle Hunt"]]
2
3 [[!tag puzzles]]
4
5 I've slipped into an accidental tradition of composing a puzzle hunt
6 for my sons every year at Christmas time. We call it "The Code" and
7 it's now one of the most anticipated events every December.
8
9 If you'd like to see some examples of what the puzzles are like, you
10 can look at them here (or even try solving them yourself):
11
12   * <a href="2015">2015 Christmas Puzzle Hunt</a>
13   * <a href="/2014">2014 Christmas Puzzle Hunt</a>
14   * <a href="/2013">2013 Christmas Puzzle Hunt</a>
15   * <a href="/2012">2012 Christmas Puzzle</a>
16
17 As one might hope, I believe my puzzle-designing skills are improving
18 with practice. So hopefully the more recent puzzle above show some of
19 my better work.
20
21 This tradition has become sufficiently involved that the history of
22 The Code really deserves to be captured. Here's the story of how it
23 all started, and how it's changed over the years.
24
25 ## On Keeping Christmas a Surprise: The Invention of The Code
26
27 One year, my wife and I were lamenting to some friends that Christmas
28 gifts were losing their mystery at our house. Our boys were getting
29 good enough at poking, prodding, and predicting their presents that
30 there weren't a lot of surprises left for Christmas morning. Our
31 friends had had similar problems with their children, and we ended up
32 comparing notes on things we had done to keep gifts secret.
33
34 One obvious tactic is to disguise a gift while wrapping it. This
35 technique has already been developed to an artform by our boys. They
36 love giving each other a large, wrapped gift which, when opened
37 reveals a smaller, wrapped gift inside. Then, like a set of matryoshka
38 dolls, that gift reveals a smaller, and smaller gift. In our family,
39 as soon as this unwrapping process is started, everyone knows what the
40 end result will be. The final few layers are so tiny that there's no
41 room for boxes anymore, just many, many layers of different colored
42 gift wrap and excessive amounts of tape. These last layers take a
43 tremendous amount of effort to get through. And the reward for all of
44 this hard work of unwrapping? Inevitably, it's a single penny. We
45 don't recall who wrapped the first penny, but it's now a standing
46 tradition where the boys try to outdo each other each year by
47 disguising a penny in the most elaborate way possible.
48
49 Clearly, we're not willing to go to such heroic efforts to disguise
50 every gift we wrap. We had experimented with waiting to put the
51 Christmas gifts out under the tree until just before Christmas, but
52 that wasn't much fun. It robbed the boys of a lot of the fun
53 anticipation of seeing the gifts under the tree throughout December.
54
55 Our friends shared an idea that had worked well in their family. What
56 they did was not write names on any of the gifts, but instead wrote a
57 single number on each gift indicating the recipient. And the method
58 for choosing the numbers was selected in a new and unpredictable way
59 each year. For example, one year my friend (who happens to be a
60 dentist) wrote the number of teeth that each child had lost on their
61 gifts.
62
63 We thought this was a great idea, and we decided to give it a try. And
64 none of our Christmas gifts have had any of the boys' names on them
65 sense, (though they've had just about everything else possible). Read
66 on for a rundown of what we have done for the code for each year.
67
68 ## The Early Years: Locking the Code up Tight
69
70 For the first year, we adopted a very simple strategy. We wrapped each
71 boys gifts in a unique color of wrapping paper. We didn't explain
72 anything, and when the boys asked why none of the gifts had names on
73 them, we were evasive. Then, on Christmas morning, we told them which
74 color of gift wrap corresponded to each boy.
75
76 The second year, the boys correctly predicted that we wouldn't use the
77 same technique, and they immediately set about trying to crack "the
78 code" for the Christmas presents. They started convening secret
79 meetings to discuss theories. We discovered some of the notes from one
80 of the meetings and found that they had constructed an entire table
81 mapping out the following variables for each gift under the tree:
82 Wrapping paper color, Number of bows, Colors of bows, Picture on the
83 tag, Names on the tag. You see, this year, I did put tags on the
84 presents, but instead of their names I wrote the names of characters
85 from nonsense poetry: "To: The cat; From: The fiddle", "To: The cow;
86 From: The moon", "To: The dish; From: The spoon", etc.
87
88 Their table was fairly effective. They were able to eliminate many
89 variables that couldn't work. If there were more colors of wrapping
90 paper tan children, they assumed that could ignore that. If there were
91 only one or two bows per present, they assumed that couldn't identify
92 one of the four boys. Fortunately for me, they didn't crack the code
93 that year, but only because their table hadn't accounted for the color
94 of ribbon on each present.
95
96 By the third year, I realized that I had to put more thought into
97 designing the code. Here was an active group of intelligent agents
98 determined to find the information I was trying to hide. I was careful
99 this time to imagine every variable they could track, and ensure that
100 each variable appeared with four different values, evenly distributed
101 among the presents. I also ensured there was no correlation between
102 any of the variables. Grouping the presents by wrapping-paper color,
103 bows, ribbons, or anything else would always yield four entirely
104 different sets of presents. (So yes, this meant that now my wife and I
105 needed to consult our own table before we could know how to correctly
106 wrap each gift).
107
108 Then, for the actual information, I chose two variables I thought they
109 would never track. We carefully folded the flaps on each gift either
110 in the same direction on each side or in opposite directions on each
111 side. Then we either folded all cut edges away to leave clean creases,
112 or left the raw edges exposed. This gave us four sets of presents:
113 Matching flaps creased, Matching flaps raw, Opposite flaps creased,
114 and Opposite flaps raw.
115
116 Of course, the boys never even looked at the flaps, and all of their
117 attempts to find logical groups were foiled. When I revealed the
118 answer on Christmas morning, I was smug, thinking I had "won" by
119 creating a code they couldn't crack. Of course, the boys called me out
120 saying that what I had done was totally unfair. (How could it have
121 been unfair I thought? This was a game that I had invented myself?)
122 But the boys were totally right. My problem was thinking that this was
123 a game, when in fact, this should have been a puzzle.
124
125 Years later, I read the book "Puzzle Craft" by Mike Selinker and
126 Thomas Snyder. In the introduction, Mike Selinker describes the lesson
127 that my boys were teaching me. He says that a game is a contest with
128 two equal sides and the outcome is in doubt, (either side has a
129 roughly equal chance to win). In contrast, a puzzle is a contest with
130 two wildly-unequal sides where the outcome is never in doubt, (the
131 weaker side will always win). When I treated The Code as a game, it
132 wasn't fun for any of us. The odds were stacked too much in my
133 favor---I could always create an impossible-to-solve puzzle, but who
134 has fun with a puzzle that's impossible to solve? That just leads to
135 frustration and giving up. A good puzzle, in contrast, has plenty of
136 frustration, but enough fun and reward that the solvers stick it
137 through to the end. So I needed to learn to create a puzzle.
138
139 ## The Code Today: The Code as a Puzzle
140
141 My boys taught me that the code needed to be fair. That is, they
142 needed to be given enough information to be able to solve the
143 code. There could still be lots of deception and trickery, but they
144 needed to know that with perseverance, patience, and creativity they
145 could actually find the answer. They also gave me a second ground
146 rule: The solution to the code must be relevant and interesting. A
147 final answer of "you get the presents with the matching flaps with the
148 raw edges" doesn't cut it. Instead, the solution to the code should
149 actually point to the boys themselves. Basically, they were telling me
150 "Design us a puzzle", and "Make it a good puzzle", and it just took me
151 some time to figure that out.
152
153 <a href="/2012">Christmas 2012</a> was the first year I approached The
154 Code as a puzzle. For that year, I labeled each present with nothing
155 more than a small QR code. Scanning the QR code linked to a web page
156 with a silly animated GIF, a solid-color background, some nonsense
157 poetry in the title, etc. Somewhere in all of that was a hidden
158 indication of who the intended recipient of each present was. So this
159 was simply one puzzle, and a lot of obfuscation. I thought this puzzle
160 would have been easier than it was, (a common problem for early puzzle
161 designers from what I understand). But the boys had a lot of fun with
162 it, and with some hints at the end, they figured things out by
163 Christmas.
164
165 <a href="/2013">Christmas 2013</a> was the first year I stepped up and
166 instead of designing just one puzzle, I designed an entire puzzle
167 hunt. A puzzle hunt is a connected series of several puzzles. Many
168 puzzle hunts also included "meta-puzzles" where the solutions to
169 several puzzle combine to form a new puzzle. This was my first puzzle
170 hunt to design and it included 24 puzzles, 5 metapuzzles, and 1 final
171 metametapuzzle, (where the solutions to 4 previous metapuzzles had to
172 be combined in another puzzle) That was probably over-ambitious for my
173 first puzzle hunt, but it worked fairly well. There were a couple of
174 bugs in the puzzles that I should have caught with better testing in
175 advance.
176
177 One thing I was really pleased with was that I intentionally
178 included every element from the previous puzzle, (animated GIFs,
179 random background colors, nonsense poetry, etc.). But where in 2012
180 many of these elements were meaningless red herrings, in this year's
181 hunt, every element was used in at least one puzzle. I was also happy
182 that I included a mechanism for providing additional hints along the
183 way. (And I did this in a way that I could revise those hints before
184 the boys encountered them, so I could fine-tune the hints based on
185 where they were getting stuck.) That was very useful, and I used that
186 to my advantage again in 2014.
187
188 <a href="/2014">Christmas 2014</a> was my second puzzle hunt, so it's
189 clearly now a new tradition that we won't give up for some
190 time. (We'll just need to adapt things when some of the boys move out
191 of the house, etc.). I do feel like I'm getting better at puzzle
192 design, and the boys are still having a lot of fun solving this. I
193 wrote up a <a href="/christmas_code/2014">blog post</a> giving some of
194 my feedback on how the solving experience went this year.