Solution: Shallow Waters
Answer: FLIPPROOF
Written by aki
Based on the flavor text and reading of the rules, we infer than pool noodles and donuts respectively refer to 1's and 0's, indicating that binary is relevant here. Evidently, the first step is to solve the logic puzzle, which has the following solution (0's and 1's used to represent donuts and noodles).
5 | 6 | 4 | 11 | 5 | 10 | 5 | 6 | 7 | 7 | 9 | 6 | 4 | 6 | 6 | 7 | 7 | 10 | 9 | 5 | 7 | |
11 | 0 | 0 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 0 |
11 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 1 | 1 | 1 | 0 | 1 | 0 | 1 | 1 |
9 | 0 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 1 |
10 | 1 | 1 | 0 | 1 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 |
10 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 |
7 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 1 | 0 | 1 |
10 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 |
13 | 1 | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 |
10 | 1 | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 1 |
10 | 0 | 1 | 0 | 1 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 1 | 0 |
5 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 |
8 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | 1 | 0 | 0 |
7 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 |
11 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 0 | 1 |
10 | 0 | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | 1 | 0 |
We next notice that we are given highlighted cells in yellow. Based on the pattern of cells, we notice that when read in row-major order, the highlighted cells create distinct sets of 5-bit binary strings. This gives the following sets of binary strings.
Binary string | Decimal number | Letter |
---|---|---|
01000 | 8 | H |
00001 | 1 | A |
01101 | 13 | M |
01101 | 13 | M |
01001 | 9 | I |
01110 | 14 | N |
00111 | 7 | G |
10011 | 19 | S |
00101 | 5 | E |
10110 | 22 | V |
00101 | 5 | E |
01110 | 14 | N |
00110 | 6 | F |
01111 | 15 | O |
10101 | 21 | U |
10010 | 18 | R |
Translating the binary we obtain the cluephrase HAMMING SEVEN FOUR, referencing an encoding technique which uses Hamming codes to encode a 4-bit string using a 7-bit string. The advantage of Hamming codes is that they are error-correcting. In particular, Hamming(7,4) is single-error-correcting, which means that if one of the seven bits are somehow flipped, the resulting string gives us all the information to find the flipped bit, and correct the error.
Once we have obtained this cluephrase, we reference the flavor text which tells us that the grid actually encodes a message in Hamming(7,4). Combined with the row-major method of reading the cluephrase previously, we are prompted now to treat the entire grid as one long binary string.
After looking at a couple of 7-bit strings, we realize that these strings all have errors! The next step is, of course, to correct the received message and recover the original sent message. Once we have corrected each 7-bit string, we can obtain the original 4-bit message from each one. Next, we observe that the next set of boxes at the bottom tell us to convert the 45 bitstrings of length 7 to 36 bitstrings of length 5. Stringing together the 45 sets of 4-bit strings and resegmenting them into 36 sets of 5 bits, we are able to read off letters, which gives us the second cluephrase, READ CORRECTED BITS AND EXTRACT THE ANSWER. (The given checksums indicate the sum of bits for each of the 36 letters.)
Finally, we should look at the corrected bits in order, and concatenate those to read off the sets of 5 bits instead. Doing so tells us what pool noodles, pool donuts and Hamming codes have in common – that is, they are FLIPPROOF.
Errored 7-bit string | Errored bit position | Correct 7-bit string | 4-bit message | Corrected bit | Extracted letter |
---|---|---|---|---|---|
0011101 | 5 | 0011001 | 1001 | 0 | F |
1111001 | 3 | 1101001 | 0001 | 0 | |
0001100 | 1 | 1001100 | 0100 | 1 | |
0001010 | 2 | 0101010 | 0010 | 1 | |
1001101 | 7 | 1001100 | 0100 | 0 | |
1101011 | 6 | 1101001 | 0001 | 0 | L |
0100011 | 3 | 0110011 | 1011 | 1 | |
0000110 | 3 | 0010110 | 1110 | 1 | |
0101101 | 4 | 0100101 | 0101 | 0 | |
1101010 | 1 | 0101010 | 0010 | 0 | |
0101011 | 7 | 0101010 | 0010 | 0 | I |
1010000 | 2 | 1110000 | 1000 | 1 | |
0011110 | 4 | 0010110 | 1110 | 0 | |
1111000 | 4 | 1110000 | 1000 | 0 | |
0000101 | 2 | 0100101 | 0101 | 1 | |
0001010 | 2 | 0101010 | 0010 | 1 | P |
0000001 | 7 | 0000000 | 0000 | 0 | |
0011101 | 5 | 0011001 | 1001 | 0 | |
1001011 | 4 | 1000011 | 0011 | 0 | |
1101100 | 2 | 1001100 | 0100 | 0 | |
0001001 | 3 | 0011001 | 1001 | 1 | P |
1110010 | 6 | 1110000 | 1000 | 0 | |
0110101 | 3 | 0100101 | 0101 | 0 | |
1111100 | 1 | 0111100 | 1100 | 0 | |
1011100 | 3 | 1001100 | 0100 | 0 | |
0101000 | 6 | 0101010 | 0010 | 1 | R |
0010111 | 7 | 0010110 | 1110 | 0 | |
0101011 | 7 | 0101010 | 0010 | 0 | |
0011000 | 7 | 0011001 | 1001 | 1 | |
1101010 | 1 | 0101010 | 0010 | 0 | |
0000010 | 6 | 0000000 | 0000 | 0 | O |
1010000 | 5 | 1110000 | 1000 | 1 | |
0010010 | 5 | 0010110 | 1110 | 1 | |
0001001 | 7 | 0011001 | 1001 | 1 | |
1000100 | 4 | 1001100 | 0100 | 1 | |
1011100 | 3 | 1001100 | 0100 | 0 | O |
1101000 | 7 | 1101001 | 0001 | 1 | |
0001100 | 1 | 1001100 | 0100 | 1 | |
0101000 | 6 | 0101010 | 0010 | 1 | |
0000110 | 3 | 0010110 | 1110 | 1 | |
0011011 | 6 | 0011001 | 1001 | 0 | F |
1110101 | 2 | 1010101 | 1101 | 0 | |
0101100 | 3 | 0111100 | 1100 | 1 | |
0110010 | 7 | 0110011 | 1011 | 1 | |
0101110 | 7 | 0101010 | 0010 | 0 |
Author's Notes
Thanks goes to Jonathan who initially gave me the idea of using error-correcting codes for this puzzle!
I spent a long time playing around with different ideas on how to extract appropriately, before I landed on my final answer to the question – why not all of them? And from there, the puzzle wrote itself! The inclusion of a binary determination logic puzzle was natural as a means of giving solvers the required bits. The logic puzzle is not very hard, and there certainly are many solve paths that will result in the correct solution, which I did not mind since the primary point of the puzzle was not the logic portion anyway.