Open trexrush opened 1 year ago
cubing.js
supports the same big cube slice moves as alg.cubing.net :
I suppose your concern is that you expect M2
to act like m2
? That's something we might consider for Twizzle alpha in response to feedback, but not something we'd revisit particularly soon. Would you be able to accommodate that in your code?
hi! I think the only confusing aspect in terms of understandability is having M
refer to the inner slice move and m
refer to the wide slice move. Furthermore, due to how M
is defined, it is an invalid move on even layered big cubes.
I think my use case will require some form of adapter to accommodate multiple notations for external tools, so I can work around this for now.
I still think there is a good reason to allow users to define aliases for move notations, like I suggest in the alternatives section. This could allow an in-library way of substituting custom notation, immediate use cases would be for things like implementing Karnaukh notation / karnotation on square-1, or overriding big cube notation to better fit existing and common algorithm patterns, such as r
/ 2R
instead of 2-3R
on 6x6 (or M for big cubes as was my need)
That being said, the initial request was made mostly because of me not finding the proper documentation or code for valid move types. I think there is a valid suggestion here, however, though since my immediate use case doesn't require any code change it would be low priority.
Goal
Hi, Id like to be able to use M, E, and S slices on big cubes. Im currently using puzzleGen (refactored typescript visualcube) on a project alongside cubingjs, and I cannot apply the same algorithm on 4x4 for both which means I need to add a notation translator function to use M slices (as well as inner slices)
Quick comparison of notation between these packages:
Possible solution
implement the moves or alias them for the existing notation (M' => 2-3r)
Alternatives
a way to define custom notation in a project specific manner to avoid having to hardcode extra notation, though that goes against the contribution guidelines of putting extra work on the user.