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

During your visit to our site, NumWorks needs to install "cookies" or use other technologies to collect data about you in order to:

With the exception of Cookies essential to the operation of the site, NumWorks leaves you the choice: you can accept Cookies for audience measurement by clicking on the "Accept and continue" button, or refuse these Cookies by clicking on the "Continue without accepting" button or by continuing your browsing. You can update your choice at any time by clicking on the link "Manage my cookies" at the bottom of the page. For more information, please consult our cookies policy.