# rubik2.py

Created by nicolas-patrois

Created on November 12, 2018

1.96 KB

Mouvements du Rubik’s cube 2×2×2. rubik(“AB-H2”) tourne la face Avant dans le sens des aiguilles d’une montre puis la face du Bas dans le sens inverse et enfin la face du Haut deux fois.

```def rubik(m):
i=0
while i<len(m):
if m[i]=="-":
m=m[:i]+m[i-1]*2+m[i+1:]
elif m[i]=="2":
m=m[:i]+m[i-1]+m[i+1:]
elif m[i] not in "APDGHB":
m=m[:i]+m[i+1:]
i+=1

C={"A":["A"]*4,"P":["P"]*4,"D":["D"]*4,"G":["G"]*4,"H":["H"]*4,"B":["B"]*4}

#      H0H1
#      H3H2
#
# G0G1 A0A1 D0D1 P0P1
# G3G2 A3A2 D3D2 P3P2
#
#      B0B1
#      B3B2

for c in m:
C[c]=[C[c][3]]+C[c][:3]
if c=="D":
C["A"][1],C["H"][1],C["P"][3],C["B"][1]=C["B"][1],C["A"][1],C["H"][1],C["P"][3]
C["A"][2],C["H"][2],C["P"][0],C["B"][2]=C["B"][2],C["A"][2],C["H"][2],C["P"][0]
elif c=="A":
C["G"][1],C["H"][2],C["D"][3],C["B"][0]=C["B"][0],C["G"][1],C["H"][2],C["D"][3]
C["G"][2],C["H"][3],C["D"][0],C["B"][1]=C["B"][1],C["G"][2],C["H"][3],C["D"][0]
elif c=="H":
C["G"][1],C["P"][1],C["D"][1],C["A"][1]=C["A"][1],C["G"][1],C["P"][1],C["D"][1]
C["G"][0],C["P"][0],C["D"][0],C["A"][0]=C["A"][0],C["G"][0],C["P"][0],C["D"][0]
elif c=="G":
C["A"][0],C["B"][0],C["P"][2],C["H"][0]=C["H"][0],C["A"][0],C["B"][0],C["P"][2]
C["A"][3],C["B"][3],C["P"][1],C["H"][3]=C["H"][3],C["A"][3],C["B"][3],C["P"][1]
elif c=="P":
C["G"][0],C["B"][3],C["D"][2],C["H"][1]=C["H"][1],C["G"][0],C["B"][3],C["D"][2]
C["G"][3],C["B"][2],C["D"][1],C["H"][0]=C["H"][0],C["G"][3],C["B"][2],C["D"][1]
elif c=="B":
C["G"][3],C["A"][3],C["D"][3],C["P"][3]=C["P"][3],C["G"][3],C["A"][3],C["D"][3]
C["G"][2],C["A"][2],C["D"][2],C["P"][2]=C["P"][2],C["G"][2],C["A"][2],C["D"][2]

print("    %s%s"%(C["H"][0],C["H"][1]))
print("    %s%s"%(C["H"][3],C["H"][2]))
print()
print(" %s%s %s%s %s%s %s%s"%(C["G"][0],C["G"][1],C["A"][0],C["A"][1],C["D"][0],C["D"][1],C["P"][0],C["P"][1]))
print(" %s%s %s%s %s%s %s%s"%(C["G"][3],C["G"][2],C["A"][3],C["A"][2],C["D"][3],C["D"][2],C["P"][3],C["P"][2]))
print()
print("    %s%s"%(C["B"][0],C["B"][1]))
print("    %s%s"%(C["B"][3],C["B"][2]))```