#!/usr/bin/env python3 P=["DABCEFGHLIJKMNOPQRST","EBCAHFGDQJKLTNOPMRSI","BFCDAEGHIRKLMQOPJNST","ABCDFGHEIJKLNOPMQRST","ACGDEBFHIJSLMNRPQKOT","ABDHEFCGIJKTMNOSQRLP"] O=[[0]*20,[2,0,0,1,1,0,0,2]+[0]*12,[1,2,0,0,2,1,0,0]+[0,1,0,0,0,1,0,0,1,1,0,0],[0]*20,[0,1,2,0,0,2,1,0]+[0]*12,[0,0,1,2,0,0,2,1]+[0,0,0,1,0,0,0,1,0,0,1,1]] def turn(s,a): p=[ord(x)-65 for x in P[a]] return [3*(s[p[i]]//3)+(s[p[i]]%3+O[a][i])%3 for i in range(8)]+[2*(s[p[i]]//2)+(s[p[i]]%2+O[a][i])%2 for i in range(8,20)] s=[3*i for i in range(8)]+[2*i for i in range(12)] scr="R2 U F2 U2 B2 U2 R' U2 F2 R' B2 D2 R U2 D L' R2 D2 F L B' F' U' R L' D R' B R F2 L' F2 L D" for x in scr.split(): a="URFDLB".index(x[0]) n=2 if "2" in x else 3 if "'" in x else 1 for j in range(n):s=turn(s,a) print(s) print("white cross",s[8:12])