Solution to How to Run a Puzzlehunt
Solvers are presented with a git .diff file, a file that represents a set of changes to be applied to a Git repository.
There are a few ways to figure out what to do with this .diff. The most reliable is to use the very suspicious first line, featuring a conspicuous airplane emoji:
This is a Django app for running puzzlehunts, written by several members of ✈
Using this to look into Galactic Trendsetters’ past hunts or simply Googling this line should lead solvers to the codebase ✈✈✈ Galactic Trendsetters ✈✈✈ used to run several puzzlehunts, gph-site. After it became clear that we wouldn’t be able to run Galactic Puzzle Hunt 2020, several groups asked us for advice about how to run a puzzlehunt and, in particular, host one on a website, so we open-sourced the website, and between then and Mystery Hunt at least three puzzlehunts used parts of this codebase (more on that later).
In any case, for this puzzle, the most notable features of this codebase are its Django fixtures (a way to include sample data) and sample hunt, both of which are linked from the README.
Solvers will need to reference the sample puzzles. Running gph-site on your local machine will make the puzzles more readable (and encouraging solvers to do so was a small indirect goal of this puzzle), but is not necessary. The sample solutions are occasionally helpful. In particular, the meta solution reveals that the answers in the meta all have unique double letters, which produce the answer.
With those sample puzzles, it is possible to interpret and follow along our poor hint-requestors’ unsuccessful and evidently quite misguided attempts at solving these puzzles. Sometimes the requestors do not explicitly say what they tried, and solvers must cross-reference their provided work and the puzzle or solution body to infer what they did. Here, we must also notice that, ignoring the meta, every hint request has exactly three paragraphs. Here are descriptions of those paragraphs:
- (On Ambiguity)
- Solve and extract from all clues except for the two longest, which are replaced by placeholders.
- Sort extracted things by length, and then alphabetically; many things tie at even lengths.
- Randomly apply a Caesar shift. The solver wants something soft to cuddle.
- (On Bad Cryptogram Puzzle)
- Concatenate groups of digits that have the same last digit, after discarding that last digit.
- Play Boggle on a square grid. Here, you have to actually create the grid this solver produced from 2a, which should look as follows:
13413 41341 34134 56278 97224
For many of the digit sequences, there are multiple Boggle paths that could have produced them. However, there is a unique path shape such that the nine translations of it in the grid produce precisely the nine five-digit sequences reported by the requestor, namely a path that goes west, southwest, north, and north from its start square. - Randomly anagram the letters. The solver wants some form of help.
- (On Break It Down)
- Figure out the first part of the puzzle, create a grid with the letters, and flip it vertically / reverse the rows.
- Keep only the first few letters, exactly as many letters as needed to fill the blanks in the puzzle.
- Submit the last ⅔ of the contents of the box as the answer. The solver wonders how they were prevented from solving this puzzle.
- (On Championship)
- Sort the clues in some order. By looking at what the solver has done, you can infer they sorted the clue in reverse order of length.
- Solve the clue while ignoring the ? in the middle to try to find a word that fits in the bottom blanks.
- Treating letters and numbers as interchangeable via A=1, B=2, and so on, sum numbers and attempt to convert them back to letters. The solver wants to find structure in this puzzle.
- (On Diagramless)
- Find a famous, recent video game that is considered best of all time, which shares the first three or four letters with the puzzle title, but not the pronunciation of those letters.
- Treat all numbers in the puzzle as indexes, wrapping around if necessary. Solvers must deduce from the example letters that the requestor is indexing into the puzzle title.
- Treat all numbers in the puzzle as indexes into the clues. The solver wants to exclaim victory.
- (On Geometry)
- Transform the puzzle’s numbers digit by digit. Solvers must deduce that this solver is transforming x → 4x+3.
- Add 1 to all numbers again.
- Concatenate everything and attempt to find an ancient non-English name as an answer.
The meta hint request is a bit different, but basically, the requestor noticed what the answers have in common, but not how to order them.
It turns out that it is possible to reassign all 18 of these puzzle-solving steps to a different puzzle such that they still make sense. Although this is not explicit, the number and order of steps is always preserved, and all three steps originally applied to one puzzle are assigned to different puzzles: the first step a solver tried should be the first step on another puzzle, the second step should be the second step on a third puzzle, and the third step should be the third step on a fourth puzzle. When the assignment is complete, solvers should arrive at a plausible answer on every puzzle that matches the description of what the requestor wants at the end of the third step.
The correct assignment is:
- Ambiguity
- 4a: Sort by reverse length. The clues should have lengths that are distinct enough that most ways of measuring length — counting words, letters, or characters — should give the same result: 3: “In the International…”, 5: “The blood type…”, 1: “To write this…”, 6: “On a QWERTY…”, 4: “You can type…”, 2: “If you were…”.
- 6b. Add 1 to all numbers, resulting in 4, 6, 2, 7, 5, 3.
- 5c: Index numbers into the clues:
- [4] in t[H]e international…
- [6] the bl[O]od type…
- [2] t[O] write this…
- [7] on a qwe[R]ty…
- [5] you c[A]n type…
- [3] if [Y]ou were…
- Bad Cryptogram Puzzle
- 6a: Transform all digits k → 4k + 3. This produces a sequence of 37 numbers, but the later steps imply that only the last six digits matter, so we will list only those for ease of exposition: 972240 become 39, 31, 11, 11, 19, 3.
- 5b: Index every number into the title, wrapping around if necessary. “BAD CRYPTOGRAM PUZZLE” has 19 letters; the aforementioned numbers wrap to indexes 1, 12, 11, 11, 19, 3 and produce the word BARRED.
- 3c: Take last ⅔, the last six letters of the box. In this description of the solution path, we’ve done this already. The word BARRED is a synonym of “prevented” in the requestor’s last question.
- Break It Down
- 5a: Find a famous, recent video game that is considered best of all time, which shares the first three or four letters with the puzzle title, but not the pronunciation of those letters. There’s one obvious candidate on Wikipedia’s list, the last one as of time of writing: Breath of the Wild (although it is technically the subtitle, it’s commonly referred to directly as such).
- 4b: Ignore the ? to solve the clue. Taking the ? out, the clue just says STOP TIME. In Breath of the Wild, you stop time specifically with the STASIS rune, which fits in the blank.
- 2c: Randomly anagram STASIS to get ASSIST, a form of help.
-
Championship
- 1a: Solve all clues except for the two longest, which are unambiguously CRUSTA?EOLOGY and INTERLOCU?ORY. With placeholders, you obtain the letters ?OMPE?ITIONNAME.
- 3b: Keep only the first few letters, exactly as many letters as needed to fill the blanks in the puzzle. There are seven blanks and the first seven letters, including placeholders, are ?OMPE?I.
- 6c: Concatenate everything and attempt to find an ancient non-English name as an answer. Indeed, there’s one compelling name that fits the pattern: POMPEII.
-
Diagramless
- 3a: After solving the first part of the puzzle, reverse the rows of the grid to get
PARS ELSE EASY BLUE
- 2b: Boggle a path that goes west, southwest, north, and north. Of the four places in this grid that that path can be traced, one produces a compelling word, SLEEP.
- 1c: Randomly Caesar shift the word. SLEEP has one Caesar shift that is a compelling word, BUNNY, something soft to cuddle.
- 3a: After solving the first part of the puzzle, reverse the rows of the grid to get
-
Geometry
- 2a: Concatenate groups of digits that have the same last digit, after discarding that last digit. We get the digit sets 1347 (digits paired with 1), 3174 (digits paired with 3), 27 (digits paired with 5), 147 (digits paired with 6), and 34 (digits paired with 7).
- 1b: Sort by length and then lexicographically. The order is 27, 34, 147, 1347, 3147.
- 4c: Sum the digits in each group, and convert A=1. We get 2+7 = 9 = I, 3+4 = 7 = G, 1+4+7 = 12 = L, 1+3+4+7 = 15 = O, and 3+1+4+7 = 15 = O, producing the answer IGLOO, a structure.
A subjective solve path one might follow to arrive at this assignment:
First, let’s attempt to reassign all first-step instructions.
- Break It Down’s 3a involves a grid and applies much better to the actual crossword, Diagramless, with a grid.
- Ambiguity’s 1a refers to subpuzzles that have solutions. This applies the best to Championship; none of the other puzzles (excepting Diagramless, perhaps, but that’s a worse fit and has been assigned anyway) have independent subpuzzles with independent solutions.
- It’s possible to “reverse-engineer” 5a’s clue to arrive at Break It Down by looking at the most recent best video games on Wikipedia’s list. (The wording is to prevent solvers from choosing Breakout, which isn’t on the list and is very old, but is certainly a famously influential video game.) It’s also possible to observe that Break It Down lacks both numbers for 2a and 6a to work on and clues with meaningful lengths for 4a to sort, so 5a is the only remaining instruction remaining that could reasonably be applied to it.
- Bad Cryptogram Puzzle’s 2a and Geometry’s 6a both work with numbers.
- Although they might arguably apply to the clue numbers in Ambiguity, both steps are worded to suggest puzzles that are very number-heavy, so it makes sense to assign them to each other.
- Having eliminated everything else, we finally assign Championship’s 4a to Ambiguity.
Second-step instructions:
- Championship’s 4b conspicuously references a “? in the middle”, and Break It Down is the only other puzzle with a question mark, so it makes sense to assign 4b to Break It Down. This is confirmed by STASIS being a compelling answer specific to Breath of the Wild that is also the right length.
- Bad Cryptogram Puzzle’s 2b specifically calls out a square grid, so again we assign it to the puzzle with an actually reasonable square grid, Diagramless. Break It Down’s 3b specifically references a discrete number of blanks, so should be assigned to the only other puzzle with such blanks, Championship.
- Now we have Ambiguity’s 1b (sort length then lex), Diagramless’s 5b (index into title mod length), and Geometry’s 6b (+1 to all) to assign to Ambiguity, Bad Cryptogram Puzzle, and Geometry. Here it might be useful to do some lookahead. Break It Down’s 3c conspicuously references a “box” with “contents”, the last ⅔ of which are the answer, which suggests assigning it to the only other puzzle with a box, Bad Cryptogram Puzzle. This means we want to convert Bad Cryptogram Puzzle’s numbers to letters, and the only second step that does this we have left is Diagramless’s 5b.
- Then, to avoid assigning puzzles’ steps to themselves, we assign Ambiguity’s 1b and Geometry’s 6b to each other.
Final-step instructions:
- As mentioned above, 3c matches to Bad Cryptogram Puzzle and successfully extracts BARRED, so we are done with it.
- The remaining puzzles at this point are at these states:
- Ambiguity is a list of numbers and clues;
- Break It Down has produced the word STASIS;
- Championship has produced the letters ?OMPE?I;
- Diagramless has produced the word SLEEP;
- and Geometry has produced the digit sequences 27, 34, 147, 1347, and 3147.
- We can finally assign Diagramless’s 5c to the only puzzle in the state where indexing makes sense, Ambiguity, and Championship’s 4c to the only puzzle with numbers to sum, Geometry. Wheel of fortuning ?OMPE?I produces a compelling word. STASIS has no good Caesar shifts, but does have one good anagram, and SLEEP successfully Caesar shifts to BUNNY, so the matchup is complete.
Now, following the misguided meta solve attempt, you can extract the meta with the same mechanism of taking double letters without reordering to get the meta answer that this misguided team of requestors might arrive at, which is the true answer to this puzzle: ORSINO.