Crossword Quirks

Status: implemented

Problem Statement

One challenge we’ve run into is per-language (and per-puzzle) quirks. As an example, Dutch has an “IJ” digraph that appears in puzzles as a character pair. Another example is the existence of rebus puzzles in english. To handle that, we need to provide alternate behaviors for crosswords.

Quirks is our way of encapsulating the game behavior in a single place. It is primarily used by an XwordState to adjust the behavior of a grid, but can be used outside of a play state to adjust the outer chrome.

Assumptions

To best handle that, we have a quirk GObject that can be included with a puzzle state. It’s optional – no quirks means standard behavior. But it’s a way to change the behavior on a per-puzzle basis. In addition, it’s possible to have quirks based on the environment of the crossword game, so a quirks object without an associated crossword is possible

List of quirks

  • IJ_DIGRAPH: Dutch support for IJ digraph

  • GUESS_ADVANCE: User setting for how to advance the cursor after a guess