Warning: This library is in beta. Breaking changes are no longer anticipated, but may still happen before 1.0 is tagged.
- Fix cube notation parsing. Multiple wide suffixes and overly deep turns now throw errors.
- Set default
Puzzle
generics toany
- Implement
notation
method to generate string representation of parsed turn objects. - The
turn
CLI command now returns anunturn
algorithm to reverse the applied of turns. unturn
now returns the reversed algorithm.
- Implement
unturn
method to execute algorithms in reverse. An unturn flag has also been added toparse
andparseAlgorithm
.
- Allow for falsey center values when applying state to an odd-layered Dodecaminx (#36)
- Added state argument to
test
command to assert puzzle matches a particular state. This includes adding a--test
argument to theturn
CLI command.
- Added
clone
method to base puzzle class.
- The base puzzle class is no longer abstract. It can be instantiated as used as a placeholder, but cannot be scrambled.
- Fix cubes not erroring when parsing prime double turns (#29)
- If no argument is provided to
stickers
, all stickers will be returned
- All turn objects now include a
whole
property - Added
parseAlgorithm
method - Added
parse
andparseAlgorithm
cli commands
- Adds previous turn argument to
scramble
andgenerateScramble
to allow for continuous scrambling.
- BREAKING: CLI no longer uses special puzzle names to define constructor options. An explicit
options
parameter must now be provided to use non-default values.
- A number of technical improvements, the largest of which being that cubes now use the "net" strategy for managing how faces are related to one another. This significantly reduces the size of the library, and makes things much more maintainable.
- Migrated the playground from vue-cli to vite.
- Added a light mode to the playground.
- Refactored tests to be more maintainable.
- Simplified how state for Dodecaminx faces, we now use "composite matrices". See the
src/utils/composite-matrix.ts
for more information. - Renamed
getStickersForTurn
tostickers
. - Renamed
isSolved
totest
. scramble
andgenerateScramble
now return the resulting scramble.- Typescript resources for specific puzzles are no longer exported.
- Dodecaminx no longer supports Pochmann-style scrambling notation.
- Dodecaminx now uses lowercase letters to denote whole-puzzle turns.
- BREAKING: Replaced
test
CLI command withapply
- Fixed node environment issue that broke npx
- Export base
Puzzle
class
- Fix versioning and dependency issue that broke the command line interface
- Fix dodecaminx
getStickersForTurn
logic that wasn't including all slices of wide turns (#12)
- Fix dodecaminx
getStickersForTurn
logic that extracted slices from incorrect angles (#11)
- Dodecaminx puzzle added
- Fix regression of default type definitions added in v0.4.1
- Add support for generating cryptographically strong scrambles (#4)
- Add
getStickersForTurn
method (#5)
- For use with Typescript projects, a default sticker data type of
Record<string, unknown>
will be used
- BREAKING: Various methods have been renamed, check the readme for current API
- Added command line interface (#3)
- Added
toState
method
- Added
applyState
method - BREAKING:
Cube
state now uses lower case keys