David Koelle Profile picture
Jul 10, 2018 20 tweets 4 min read Read on X
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
 

Keep Current with David Koelle

David Koelle Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @dmkoelle

Jul 18, 2018
THREAD: How would the Age of Reputation affect discourse in Social Media? (1/31)
(2/31) In the early days of the World Wide Web, there were few ways to validate that the person on the other end of a connection was actually that person. Becoming anonymous was easy, which was both powerful and frightening at the same time.
(3/31) A clever comic from the July 5, 1993 issue of The New Yorker proclaimed, "On the Internet, nobody knows you're a dog." en.wikipedia.org/wiki/On_the_In…
Read 32 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


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

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

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

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us!

:(