Multi-format word puzzle system.
Allows for traditional cross-words/cryptic croos-words, as well as telated puzzles (spirals, snakes, multi-character slots, blanks, non-linearl answers, etc.)
Application is a collection of master puzzles and partial solutions A master puzzle is a tuple of a set of clues, a set of answers, and a completed grid, which is an ordered collection of symbols, and an algorithm of how to display that grid A partial solution is a grid, which is an ordered collection of symbols and blanks, and a link to a master puzzle. A symbol is ordered set of displayable characters (usually exactly one) A clue is set of one or more strings, and a single answer An answer is a set of tuples of a symbol and a grid location. (there are additional attributes to each section but that's the basis)
Master Algorithm: UI: Ask user if they want to get more puzzles, start a new puzzle or continue an existing puzzle. More: UI to get new puzzles (get list from URL, compare to list of current puzzles, display options to download) Start: Load list of puzzles. Upon user selection, load master puzzle, create a new partial puzzle based upon selection. Display blank grid. Display clue sets. Allow for user data entry. Continue: Load partial solution and corresponding master puzzle, allow user to name partial solution, display current state of grid. display clue sets. Allow for user data entry.
Puzzle UI: Base Page: zoomable grid, on-screen button for Menu (Check, Clear, Hint, Main Menu, Exit). Upon cell selection, allow entry of answer symbol(s), allow entry of Guess symbols, changing guess to answer and vice versa. Swipe: First set of clues (additional swipes to additional sets) Select a clue: Set of character boxes with already entered items displayed and blank cells empty.