a useful construction trick
hello! it was recently brought to my attention that a couple years ago i said on Discord that i would explain a certain useful constructing trick i use and then forgot to follow up lol. well, today's the day i finally make things right :P
here's a basic example to start: let's say you're trying to fill a grid where 1-Across starts at the top left square and is 10 letters long, and you want 1-Across to be anything from your seed list (but you don't care what). then what you can do is:
1. create a custom dictionary which contains all your 10-letter seed entries, except with some arbitrary non-letter character like "1" prepended to each of the words. (i have a python script for this. side note: i don't have a "seed list" per se, i just pull out the highest-scoring entries in my personal wordlist/edits file.) it should look like this:
1BENDYSTRAW;59
1HEARTEMOJI;59
...
(side note #2: i always use odd scores for entries that i've manually scored, which is a useful way to distinguish them at a glance when constructing.)
2. in Crossfire (or your construction software of choice... Ingrid is probably better these days), create a grid that's 1 column larger than the actual grid you're trying to make. fill in the entire first column with black squares except for a "1" in the top left corner.
3. reconstruct the normal grid in the rest of the space. import your custom dictionary, and let Crossfire try to fill. you can see that 1-Across will be forced to start with a "1", so it will have to come from your custom dictionary (assuming you don't have entries with digits in your normal word list). voila!
so yeah, that's the basic idea: create custom dictionaries with special characters attached to words and use those special characters "outside" the grid to filter particular entries. it takes a bit of work, but it can be super powerful, especially when you start getting even more creative with it.
here's a slightly more complicated example: same setup, but let's say you want a triple stack of 10s in the top left where at least TWO of them are seed entries.
this time, you should create a custom dictionary containing ALL 10-letter words in your word list, except prepend the ones in your seed list with a "1" and the ones NOT in your seed list with a "0".
1BENDYSTRAW;59
1HEARTEMOJI;59
0HORSESHOES;50
...
also, add another custom dictionary with the following four entries:
2011;50
2101;50
2110;50
2111;50
you'll see the purpose of this in a bit.
now, create the grid as before, but this time you'll need an extra row AND column. block out the first row and the first column except for the top 4 squares in the first column, and put a "2" in the top left. import your custom dictionaries and run the fill tab.
now you can see what's going on: the 2 in the top forces the squares below it to be some combination of 1s and 0s containing at least two 1's, which based on how we constructed our custom dictionaries will give us at least two seed entries going across! pretty cool, right?
(side note #3: when constructing, i usually create the grid with at least 1 extra row/column on all sides so i can use this trick wherever needed.)
so there you have it! those are the basics of this trick. it definitely takes some work to implement, but it's extremely useful, especially in themeless construction where you're trying to fit in as many sparkly entries as possible. there are even some more advanced tricks along the same lines which you can use to do even crazier stuff; i may discuss those in another blog post if people are interested :P
thanks for reading, and happy constructing!
Comments
Post a Comment