Sunday, December 4, 2022

Tutorial: Blank Squares

Another interesting challenge is when you have a word entered in one direction that should be treated as blank for its crosses. As a twist, the crossing answers can be valid both with and without the missing letter.

This amazing puzzle from David Steinberg and Neil Patrick Harris is a great example of this sort of trickery:




It's so impressive how David managed to string together twelve (!) consecutive down answers that are valid whether or not you enter the string HARRYHOUDINI. In his notes, David recounts the wizardry required and how daunting it was to fill. But you can actually use a similar approach as the one I describe for Schrödinger Squares to create these vanishing answers.

We'll start by finding entries that are valid fill both with and without a single H. In Excel we would filter our wordlist and copy everything containing that letter to a separate tab. Then we add a column that counts the number of H's in each entry and sort from high to low:


To simplify things I remove anything with a count over 3, since those are unlikely to produce a valid result.

Next we add columns for the results after both removing each H and encoding each H with a unique character (I'm using the number 1 here). Since we capped the H count at 3, that means we need three "removed" columns and three "encoded" columns.



The formulas are pretty similar, except one is substituting in nothing ("") while the other is substituting our encoded value (1). Note that the formulas each reference the numbers in row 3, which refer to which instance of the H should be replaced. Copy these formulas down according to the count column, i.e., only copy removed #3 (column E) and encoded #3 (column H) for words that actually contain 3 H's.

Note: when you're running a larger calculation (like this step and again below), it's usually a good idea to copy and paste values as you go. Excel tends to struggle keeping up with too many formulas and this will makes things easier.

Now we will check these results against our original wordlist. First, we need to compile everything into single columns. Copy "removed" 1, 2, 3 (columns C, D, E) into one new column and "encoded" 1, 2, 3 (columns F, G, H) into another. Next, copy their associated original words (column A) alongside  them. The results will look something like this (after sorting):


Now that we have everything cleaned up we just as the vlookup formula to see if anything in our removed column can be found in the original full wordlist:


In the above formula the red array is our original wordlist. If you filter out "#N/A" in the vlookup column you will have all your valid letter drops for the letter H. It's also a good idea to QA these results to pare down any false positives and overly obscure results. If your wordlist is well-maintained, consider doing an additional vlookup for word scores. This will help some, but you still might not want to include things like THERESA --> TERESA or YOGHURT --> YOGURT. You'll need pare down a lot more when looking at a letter like D or S.

To recreate the above puzzle we would need to repeat these same steps for every letter of the answer HARRYHOUDINI, changing the encoded number for each letter:

H = 1
A = 2
R = 3
Y = 4
O = 5
U = 6
D = 7
I = 8
N = 9

When that arduous task is done you can combine all of the encoded words into a single custom list and upload it in CrossFire:


Then, after building the grid, we enter our themed answers but change HARRYHOUDINI to the encoded version of 123341567898. As you can see below, the fill tab is yielding a number of options that work such that all the down crosses work both with and without those letters:


It's important to note that this encoding only works in CrossFire for the numbers 0-9, so you're capped at 10 unique encoded values. However, in Crossword Compiler (or at least the ancient version I have) you can use a number of other special characters, like: ) ] ~ % /, etc. There are a few special characters it will not recognize though, so be sure to QA as you go.


Spoilers below for my "Sweet Nothings" puzzle. Go solve first if you care.






For my "Sweet Nothings" puzzle I had 6 theme answers containing different candy brands that I wanted to be treated as blank squares for the crossing answers:




Unfortunately, that required encoding 15 different letters, more than what's feasible in CrossFire. Luckily, Crossword Compiler recognizes additional special characters when included in a wordlist. So my grid skeleton looked like this:




I should note that it took a very long time to compile and clean up that custom, encoded wordlist. There's a lot of junk to remove, and I was pretty forgiving with the stuff I kept. And with such a constraint on so many crosses, it was pretty tricky to find a passable layout. The result is far from my cleanest 21x, but I'm pretty pleased with the result, all things considered.






I'll try to update this post to include a more detailed video walkthrough of blank squares, but you can also check out the Schrödinger Squares video which is very similar (instead of swapping for a second letter, you just swap for a "").





No comments:

Post a Comment