Git Product home page Git Product logo

crucible's People

Contributors

jnu avatar

Stargazers

 avatar

Watchers

 avatar  avatar

crucible's Issues

Allow mirror symmetry option in builder

Currently the only symmetry option is 180deg rotational symmetry or no symmetry at all. Mirror symmetry should also be possible, though it's much less common.

User accounts / auth

Integrate with something like Firebase to allow users to have their own accounts. Relates to #13

Improved navigation

  • Tab should move to next word
  • Backspace should keep backing up through next word

Interactions on the WordWizard component

Allow mouse interactions on the WordWizard component:

  • Click on a word to fill it into the grid at the current cursor position
  • Context menu to disable a word from being used in the list (see #6)
  • Context menu to enter a new word into the list (see #6)

Suggest clues

Can generate reasonable clue suggestions with an LLM call.

Suggestions can probably all be batched into a single prompt.

The user could also add a puzzle description to suggest the LLM a certain vibe/theme for the clues.

Print view

Grid print view should format according to the NYT submission guidelines.

Store / query metadata with word lists

Word lists should support metadata, including:

  • Score (included in some major wordlists)
  • Whether word has appeared in a puzzle
  • Clues used for this word in past puzzles

The first two of those can be used to weight words during auto-fill / suggestion.

In the implementation, there's not currently a way to freeze any metadata in the encoded DAWG from tiny-trie. So metadata would have to be stored and queried separately, unless tiny-trie was extended to store values (which wouldn't be that hard, but definitely a bit of work).

Allow modifying word lists with custom data

Allow user to add / remove words from the word lists. While the custom patches can't be incorporated into the underlying DAWG, they can be patched onto the wordlist in the caching layer that sits above the DAWG itself.

The customizations can be saved in the storage layer (which currently is just LocalStorage via the BrowserStorage client).

Fix validation bug

Currently validation fails at certain unchecked crosses in the grid. Need to catch these and mark them as invalid.

Live solvability indicator

Add a simple solvability indicator to the UI that shows the results of a smoke-test to determine whether the grid is likely solvable.

The smoke test can be performed by running a timeboxed auto-fill search. If the auto-fill runs for longer than, say, 5 seconds, we can assume there is probably an answer out there somewhere. The search usually returns relatively quickly in cases that aren't solvable that a human might not be aware of (such as with sparsely filled crossings, such as __p____j____j -- while the user is plunking things down in the cross, this word has become unsatisfiable, and the computer can detect that very quickly).

This could replace/enhance the current suggestion analysis, which recurses into crossings one level deep to try to catch unsolvable patterns. The smoke-test is a more robust approach, but doesn't lend itself to visualization as easily.

The UI can show a spinner while the smoke-test is ongoing, then a check or x in the result when finished. This can be placed alongside the "gridlock" icon.

Generate new wordlists

The included free wordlist (broda) has a lot of shortcomings. Could probably generate a reasonable wordlist with an LLM. The results might have less crosswordese / nonsensical acronyms. (Then again, they might not, and might have other problems, like reddit usernames, etc.)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.