1 comments

  • nwarner0 6 hours ago ago

    Solo project. I'm a .NET developer doing some new work but mainly maintaining legacy sites so this was my excuse to play with the Cloudflare stack (Pages, Workers, D1, KV). The game: get from a start word to a target word in as few hops as possible e.g. COLD → HOT (antonym) → SPOT (rhyme) → PLACE (synonym) → PLAICE (rhyme). Each hop must be a rhyme, synonym or antonym of the previous word. All the puzzles are human created (mainly by my wife!) so there is at least one route that works. I tried creating from scripts that daisy-chained words but the results were just not fun for some reason.

    The main problem turned out to be validation. I hugely underestimated this! The validation stack ended up as: blocklist (offensive words), already-used check, stored-path check, connections payload, human-approved matches from previous games (we queue all of these to audit), WordNet subset, ConceptNet subset, extra-pairs, lemma exceptions, hypernyms, troponyms, non-rhotic rhymes. If no match found after all those client side checks we hit some APIs (Datamuse and RhymeBrain in both directions). If all else fails lemma suffix-strip, prefix-antonym check and a local rhyme check. Despite those checks there are some obvious connections that still get rejected but hopefully enough accepted ones that the player does not give up. I was quite pleased with the share dynamic; the recipient will be presented with a challenge where their result will be compared with yours at the end.

    It's free, no signup, no ads. Honest feedback would be great and anything constructive even better.