Full Puzzle Kind
Status: Draft
A proposed inheritance tree for libipuz. Some open questions:
Q. Should ACROSTIC and FILL_IN inherit from crossword? They separate in the spec and are generally quite different puzzle types. However, the boards they have are basically identical, so as a practical matter making them crosswords could be useful.
An argument for making them separate is the invariants enforced by the
fix_()
style functions are totally different. None of the ones inIPuzCrossword
will apply toIPuzCryptic
, while eg. the ones inIPuzArrowword
andIPuzBarred
apply in spirit (if not code).Q. Which of these can share the same
IPuzCell
type? Should that class grow to be the union of all the values, or do we want to investigate different types? As an example, do we store numbers for sudokus, or just use a string?
Class |
Puzzle Kind |
Kind URI |
Implemented |
Notes |
---|---|---|---|---|
|
None |
None |
[X] |
Base class for all puzzles |
┣ |
ANSWER |
http://ipuz.org/answer |
||
┃ ┣ |
RIDDLE |
http://ipuz.org/answer/riddle |
||
┃ ┣ |
CHOICE |
http://ipuz.org/answer/choice |
||
┃ ┗ |
FLAT |
http://ipuz.org/answer/flat |
||
┣ |
BLOCK |
http://ipuz.org/block |
||
┃ ┣ |
SLIDING_BLOCK |
http://ipuz.org/block/slidingblock |
||
┃ ┗ |
MAZE |
http://ipuz.org/block/maze |
||
┣ |
CROSSWORD |
http://ipuz.org/crossword |
[X] |
|
┃ ┣ |
ARROWWORD |
http://ipuz.org/crossword/arrowword |
[X] |
|
┃ ┣ |
ACROSTIC |
http://ipuz.org/acrostic |
[X] |
Currently subtypes Crossword |
┃ ┣ |
BARRED |
https://libipuz.org/barred |
[X] |
libipuz extension |
┃ ┣ |
CRYPTIC |
http://ipuz.org/crossword/crypticcrossword |
[X] |
|
┃ ┣ |
DIAGRAMLESS |
http://ipuz.org/crossword/diagramless |
||
┃ ┣ |
FILIPPINE |
https://libipuz.org/filippine |
[X] |
libipuz extension |
┃ ┗ |
FILL_IN |
http://ipuz.org/fill |
||
┃ ┗ |
FREE_FORM |
https://libipuz.org/freeform |
libipuz extension |
|
┣ |
SUDOKU |
http://ipuz.org/sudoku |
||
┃ ┣ |
CALCUDOKU |
http://ipuz.org/sudoku/calcudoku |
||
┃ ┣ |
DIAGONAL_SUDOKU |
http://ipuz.org/sudoku/diagonalsudoku |
||
┃ ┣ |
HYPER_SUDOKU |
http://ipuz.org/sudoku/hypersudoku |
||
┃ ┣ |
JIGSAW_SUDOKU |
http://ipuz.org/sudoku/jigsawsudoku |
||
┃ ┣ |
GREATER_THAN_SUDOKU |
http://ipuz.org/greaterthansudoku |
URI is missing sudoku/ |
|
┃ ┣ |
KILLER_SUDOKU |
http://ipuz.org/sudoku/killersudoku |
||
┃ ┣ |
LATIN_SQUARE |
http://ipuz.org/sudoku/latinsquare |
||
┃ ┗ |
WORDOKU |
http://ipuz.org/sudoku/wordoku |
||
┗ |
WORD_SEARCH |
http://ipuz.org/wordsearch |
||
┣ |
ANAGRID |
http://ipuz.org/wordsearch/anagrid |
||
┗ |
TRACE_OUT |
http://ipuz.org/wordsearch/traceout |