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 inIPuzCrosswordwill apply toIPuzCryptic, while eg. the ones inIPuzArrowwordandIPuzBarredapply in spirit (if not code).Q. Which of these can share the same
IPuzCelltype? 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 |