Profile picture
David Koelle @dmkoelle
, 20 tweets, 4 min read Read on Twitter
THREAD: Usability insights requested from those who like word games and puzzles ! Please follow along with me for a bit of exposition, then provide your input! (1/17) #Puzzles #WordGames #UI #UX
(2/17) Imagine you're using a new tool to search for solutions to word puzzles. One thing this tool lets you do is discover pairs of words in which two consecutive letters anywhere within one word are reversed in other words.
(3/17) For example, "dairy" & "diary", "united" & "untied", "geocentric" & "egocentric", and "unclear" & "nuclear" share this property.
(4/17) Imagine the word tool looks like a Google search bar, in which you enter a search query and get back results. For example, if you're solving a crossword puzzle and you're stuck on 5-Down, which is _ _ R _ _, you would type "_ _ R _ _", hit "Search", and see the results.
(5/17) You have several elements available in the search bar: * to mean "wildcard" (a string of any length), ? or _ to mean any single letter, numbers 0-9 to mark any letter in a result and use the same letter for another search, and the ability to name elements of your search
(6/17) For example, *rr* finds all words with a double R. ???rr??? finds all eight-letter words with three letters, a double R, and three more letters.
(7/17) You can search for two related words by using a comma between two searches. *11* will find all words with a double letter. *11*, 1*1 would find sets where the first word has a double letter, mapped to a list of words that start and end with the same letter.
(8/17) We're interested in finding words like "dairy" and "diary", so we want to enter a search similar to *12*, *21*. These would be words that have two letters in one word, and the letters reversed in the next word.
(9/17) But we also want the results of the wildcard searches to match. *12*, *21* might give us "dairy" and "miasma" because, while it's true that the 1 and 2 are reversed, the wildcards match any string and are unrelated to each other.
(10/17) We need to name the specific wildcard results to make sure we're using the same result in the next word. Here's where it gets tricky and I could use your input and feedback.
(11/17) Option 1: Name the wildcards using a "where" clause, separated from the query by a pipe (or some other character?) that re-defines other letters: a12b, a21b | a:*, b:*
(12/17) Option 1 (cont'd): Without the "where" clause, a12b, a21b would try to find four-letter words that start with "a", have two letters in between, and end with "b". Is it weird to overload what "a" and "b" mean? They actually mean "a" and "b" unless otherwise re-defined.
(13/17) Option 2: Name the wildcards within the search: a:* 1 2 b:*, a 2 1 b. I'm going to declare that whitespace is insignificant; this is the same as the messier-looking a:*12b:*,a21b. We still lose the ability to actually search for "a" or "b" as letters within this query.
(14/17) Option 3: Name the wildcards, but list the wildcard first: *:a 1 2 *:b, a 2 1 b.
(15/17) Option 4: In the second search, refer to elements in the first search using an index: * 1 2 *, $0 2 1 $3. "$0" means, "the zeroth element from the first part of the search." You could even rephrase this as * _ _ *, $0 $2 $1 $3
(16/17) Option 5: Something beautiful that I haven't thought of yet! I'm looking for something that is simultaneously short, clear, and makes sense.
(17/17) I look forward to feedback on this. Thank you for helping me build what I jokingly call "the world's most over-engineered puzzle solver"!
(PS) H/T to @pandamagazine for a puzzle posed not long ago that asked what's special about the words "dairy", "geocentric", and "unclear"; those words inspired this specific example.
(15b) I should probably maintain consistency with regular expressions, which uses blackslash and a number for 1-based backreferences. So the rephrasing would be: * _ _ *, \1 \3 \2 \4
Missing some Tweet in this thread?
You can try to force a refresh.

Like this thread? Get email updates or save it to PDF!

Subscribe to David Koelle
Profile picture

Get real-time email alerts when new unrolls are available from this author!

This content may be removed anytime!

Twitter may remove this content at anytime, convert it as a PDF, save and print for later use!

Try unrolling a thread yourself!

how to unroll video

1) Follow Thread Reader App on Twitter so you can easily mention us!

2) Go to a Twitter thread (series of Tweets by the same owner) and mention us with a keyword "unroll" @threadreaderapp unroll

You can practice here first or read more on our help page!

Did Thread Reader help you today?

Support us! We are indie developers!

This site is made by just three indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member and get exclusive features!

Premium member ($3.00/month or $30.00/year)

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!