Releases: jwortmann/Eternity2Puzzles.jl
v0.2.0
Breaking changes:
-
The required minimum Julia version is now 1.10.
-
Changed some of the arguments of the
Eternity2Puzzletype constructor; the argument to specify the piece definitions is now a positional argument and to load a puzzle board from a file, theload!function must be used. See the docstring ofEternity2Puzzlefor more details and examples. -
The
initialize_piecesfunction has been removed. You can now use theEternity2Puzzleconstructor without arguments to create a puzzle with the original Eternity II pieces. -
The
generate_piecesfunction has been removed. Instead, theEternity2Puzzleconstructor can be used directly to create a puzzle instance with randomly generated pieces for a given board size. The number of frame and inner colors can be adjusted with theframe_colorsandinner_colorskeyword arguments. The puzzle board is automatically filled with a valid piece configuration for a full solution and you can use thereset!function to clear the board. -
Renamed the included solvers
BacktrackingSearchtoE2BacktrackingSearchandBacktrackingSearchRecursivetoSimpleBacktrackingSearch(using a loop instead of recursive function calls now). -
Changed the numbering convention for the color patterns and the edge order in input files. This change should not affect solver algorithms, but the visualization for puzzles from custom input files may be different now.
New features and improvements:
-
Added the ability to play the smaller 6x6 Clue Puzzle 1 with
play(:clue1)and the 6x12 Clue Puzzles 2 and 4 withplay(:clue2)orplay(:clue4). These puzzles can be solved by hand. More general, you can now play any given puzzle with a board size of either 16x16, 6x6, or 6x12 viaplay(puzzle::Eternity2Puzzle). -
Added a new
estimate_solutionsfunction to estimate the number of valid solutions for any givenEternity2Puzzle. -
An
Eternity2Puzzlecan now be created with more puzzle pieces than are necessary to fill the entire board. This allows, for example, to solve a smaller sized board using only a subset of the original Eternity II pieces. -
Added support for the
previewfunction to render puzzles that use more than the 22 standard color patterns. In this case the patterns are replaced by plain colors. -
Added the ability to display an
Eternity2Puzzlein form of an image directly in the REPL. This only works for terminals with Sixel graphics support. To enable this feature, install the ImageInTerminal.jl package and load it in your REPL session viausing ImageInTerminal. You can toggle between text output and image rendering with theImageInTerminal.disable_encoding()and
ImageInTerminal.enable_encoding()functions.