Fix CubeMove for rotated cubes #5
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Resolves #4. Instead of using
get_rounded_center(), now gets the relevant slice ofcubiesand rotates it usingnp.rot90. This avoids precision altogether and is also computationally efficient. I tested this by running the "all together" example that takes a cube and solves it using Kociemba's algorithm; the rotations work well even if the cube is not axis-aligned. I did not observe any numerical errors accumulating.In addition:
RubiksCube__repr__toCubieto help debugging.By the way, I think the now-removed lines
in
RubiksCubedo something else than what was intended - it's not default values that get initialized for each instance, but rather class attributes that are shared among instances. So this would probably cause trouble if we tried to animate multiple cubes. Also,cubies = np.ndarrayassigns the typenp.ndarrayto the variable, which seems unintended.