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