예제 #1
0
 def twistMove(self):
     a = CubieCube()
     for i in range(self.N_TWIST):
         a.setTwist(i)
         for j in range(6):
             for k in range(3):
                 a.cornerMultiply(CubieCube.moveCube(j))
                 self.twistMove[i][3 * j + k] = a.getTwist()
             a.cornerMultiply(CubieCube.moveCube[j])
예제 #2
0
 def toCubieCube(self):
     from CubieCube import CubieCube
     """ generated source for method toCubieCube """
     ori = int()
     ccRet = CubieCube()
     i = 0
     while i < 8:
         ccRet.cp[i] = Corner.URF
         i += 1
     i = 0
     while i < 12:
         ccRet.ep[i] = Edge.UR
         i += 1
     col1 = Color()
     col2 = Color()
     for i in Corner.values():
         while ori < 3:
             if self.f[self.cornerFacelet[i.ordinal()][ori].ordinal()] == Color.U or self.f[self.cornerFacelet[i.ordinal()][ori].ordinal()] == Color.D:
                 break
             ori += 1
         col1 = self.f[self.cornerFacelet[i.ordinal()][(ori + 1) % 3].ordinal()]
         col2 = self.f[self.cornerFacelet[i.ordinal()][(ori + 2) % 3].ordinal()]
         for j in Corner.values():
             if col1 == self.cornerColor[j.ordinal()][1] and col2 == self.cornerColor[j.ordinal()][2]:
                 ccRet.cp[i.ordinal()] = j
                 ccRet.co[i.ordinal()] = int((ori % 3))
                 break
     for i in Edge.values():
         for j in Edge.values():
             if self.f[self.edgeFacelet[i.ordinal()][0].ordinal()] == self.edgeColor[j.ordinal()][0] and self.f[self.edgeFacelet[i.ordinal()][1].ordinal()] == self.edgeColor[j.ordinal()][1]:
                 ccRet.ep[i.ordinal()] = j
                 ccRet.eo[i.ordinal()] = 0
                 break
             if self.f[self.edgeFacelet[i.ordinal()][0].ordinal()] == self.edgeColor[j.ordinal()][1] and self.f[self.edgeFacelet[i.ordinal()][1].ordinal()] == self.edgeColor[j.ordinal()][0]:
                 ccRet.ep[i.ordinal()] = j
                 ccRet.eo[i.ordinal()] = 1
                 break
     return ccRet
예제 #3
0
    def randomCube(self):
        import random

        """ generated source for method randomCube """
        cc = CubieCube()
        cc.setFlip(int(random.randint(0, CoordCube.N_FLIP)))
        cc.setTwist(int(random.randint(0, CoordCube.N_TWIST)))
        while True:
            cc.setURFtoDLB(random.randint(0, CoordCube.N_URFtoDLB))
            cc.setURtoBR(random.randint(0, CoordCube.N_URtoBR))
            if not (((cc.edgeParity() ^ cc.cornerParity()) != 0)):
                break
        fc = cc.toFaceCube()
        return fc.to_String()