def rotations_faces(cube): U = cube.copy(); N = t3d.rotate(cube, axis=0, steps=1); W = t3d.rotate(cube, axis=1, steps=1); UNW = [U,N,W]; DSE = [t3d.reflect(X) for X in UNW]; return UNW + DSE;
def rotations_nodes(cube): UNW = cube.copy(); UNE = t3d.rotate(cube, axis=2,steps=1); USE = t3d.rotate(cube, axis=2,steps=2); USW = t3d.rotate(cube, axis=2,steps=3); R = [t3d.reflect(X) for X in [UNW,UNE,USE,USW]]; return [UNW,UNE, USE,USW] + R
def rotations_edges(cube): UN = cube.copy(); UE = t3d.rotate(cube, axis=2, steps=1); US = t3d.rotate(cube, axis=2, steps=2); UW = t3d.rotate(cube, axis=2, steps=3); NW = t3d.rotate(cube, axis=1, steps=3); NE = t3d.rotate(cube, axis=1, steps=1); R = [t3d.reflect(X) for X in [UN,UE,US,UW,NW,NE]]; return [UN,UE,US,UW,NW,NE] + R;
def rotations_node_faces(cube): U_UNW = cube.copy(); #U1 U_UNE = t3d.rotate(cube, axis=2, steps=1); #U3 U_USE = t3d.rotate(cube, axis=2, steps=2); #U5 U_USW = t3d.rotate(cube, axis=2, steps=3); #U7 Us = [U_UNW, U_UNE, U_USE, U_USW]; Ns = [t3d.rotate(X, axis=0, steps=1) for X in Us]; # N7. N1, N3, N5 Ws = [t3d.rotate(X, axis=1, steps=1) for X in Us]; # W3, W1, W7, W5 UNWs = Us + Ns + Ws; DSEs = [t3d.reflect(X) for X in UNWs]; return UNWs + DSEs;