Odder / MegaminXolver

A python megaminx solver
2 stars 0 forks source link

how to use the permutation list? #2

Closed shuantsu-zz closed 5 years ago

shuantsu-zz commented 5 years ago

I love your script but I can't understand how the permutations and orientations are described in the list.

scramble = mega.getStateFromState({
  'edgePermutation': [2,0,1,3,4,5,6,7,8],
  'cornerOrientation': [0,0,0,0,0,0,0,0],
  'cornerPermutation': [0,1,2,3,4,5,6,7]
})

Why there are 9 pieces in edge permutation? I want to programmatically solve plls but can't understand this piece of the code

Odder commented 5 years ago

Yay for me replying swiftly!

So basically you you describe which piece is currently residing in each "slot" The slots are numbered as follows:

0: UBl
1: UBr
2: UR
3: UF
4: UL
5+ can't remember which order, and irrelevant for PLL

Corners are as follows

0: UBl
1: UB
2: UBr
3: UFr
4: UFl
5+ can't remember which order, and irrelevant for PLL

Let's say you have a clock wise U-perm in the front you would go as follows:

[
  0, // as slot number 0 contains the piece that needs to be in slot number 0
  1, // as slot number 1 contains the piece that needs to be in slot number 1
  3, // as slot number 2 contains the piece that needs to be in slot number 3
  4, // as slot number 3 contains the piece that needs to be in slot number 4
  2, // as slot number 4 contains the piece that needs to be in slot number 2
  6, 7, 8
]

cornerPermutation = [0,1,2,3,4,5,6,7] as everything is in their proper space