1 | initial version |
The encoding of the moves seems to me indeed inconsistent.
If you apply the following move:
C = RubiksCube().move("U*R")
C.solve()
'U*R'
The calculated solution by the internal solver 'U*R' is actually the solution for the inverse sequence 'R^-1 * U^-1'.
If I plot the Cube C it gives:
+--------------+
| 38 36 33 |
| 2 top 7 |
| 1 4 6 |
+------------+--------------+-------------+------------+
| 48 34 35 | 9 10 11 | 17 18 3 | 27 29 32 |
| 12 left 13 | 20 front 5 | 26 right 31 | 45 rear 37 |
| 14 15 16 | 22 23 8 | 25 28 30 | 43 39 40 |
+------------+--------------+-------------+------------+
| 41 42 19 |
| 44 bottom 21 |
| 46 47 24 |
+--------------+
That's the output one would expect for the sequence 'R^-1 * U^-1', not the sequence 'U*R' applied to the cube.
But if I use the C.show() command, it's displayed in the correct way. The same for the 3D option with C.show3D(). (Sorry, can't add the pictures, not allowed to upload something.)