Ask Your Question

Revision history [back]

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.)