def __init__(self, magic_cube_state=None):
     if magic_cube_state is None:
         self.mc_state = MagicCubeState()
     else:
         self.mc_state = magic_cube_state
     file_path = os.path.dirname(os.path.abspath(__file__))
     self.template_path = os.path.join(file_path,
                                       "templates/MCubeTemplate.html")
 def test_move(self):
     mc_state = MagicCubeState()
     print(mc_state)
     step = MCStep(mc_state)
     step.moves(
         [MCubeMoves.UP_DOUBLE_DOWN_DOUBLE, MCubeMoves.FRONT_BACK_INVERS])
     print(mc_state)
     basicView = MCHtmlView(mc_state)
     basicView.render()
 def test_derotate(self):
     mcs = MagicCubeState()
     state1 = str(mcs)
     print(state1)
     mcs.derotate(MCubeSide.FRONT)
     state2 = str(mcs)
     print(state2)
     self.assertNotEqual(state1, state2)
     mcs.derotate(MCubeSide.FRONT)
     mcs.derotate(MCubeSide.FRONT)
     mcs.derotate(MCubeSide.FRONT)
     state3 = str(mcs)
     print(state3)
     self.assertEqual(state1, state3)
 def test_numeric(self):
     mc_state = MagicCubeState()
     print(mc_state.numeric())
     self.assertEquals(
         "111111111222222222333333333444444444555555555666666666",
         mc_state.numeric())
     print(len(mc_state.numeric()))
     self.assertEquals(54, len(mc_state.numeric()))
 def test_get_neighbor_line(self):
     mcs = MagicCubeState()
     for side in MCubeSide:
         print(mcs[side])
 def test_init(self):
     mcs = MagicCubeState()
     del mcs
Esempio n. 7
0
 def test_rotate(self):
     mc_state = MagicCubeState()
     basicView = MCHtmlView(mc_state)
     path = basicView.render()
     print(path)
 def test_json(selfs):
     mc_state = MagicCubeState()
     print(mc_state.json())
Esempio n. 9
0
 def __init__(self , magicCubeState = None):
     if magicCubeState is None:
         self.magicCubeState = MagicCubeState()
     else:
         self.magicCubeState = magicCubeState
Esempio n. 10
0
class MCStep(object):
    def __init__(self , magicCubeState = None):
        if magicCubeState is None:
            self.magicCubeState = MagicCubeState()
        else:
            self.magicCubeState = magicCubeState

    def move(self,move_type = MCubeMoves.IDENTICAL):
        if move_type is MCubeMoves.IDENTICAL:
            pass

        elif move_type is MCubeMoves.FRONT:
            self.magicCubeState.rotate(MCubeSide.FRONT)
        elif move_type is MCubeMoves.RIGHT:
            self.magicCubeState.rotate(MCubeSide.RIGHT)
        elif move_type is MCubeMoves.DOWN:
            self.magicCubeState.rotate(MCubeSide.DOWN)
        elif move_type is MCubeMoves.UP:
            self.magicCubeState.rotate(MCubeSide.UP)
        elif move_type is MCubeMoves.LEFT:
            self.magicCubeState.rotate(MCubeSide.LEFT)
        elif move_type is MCubeMoves.BACK:
            self.magicCubeState.rotate(MCubeSide.BACK)

        elif move_type is MCubeMoves.FRONT_INVERS:
            self.magicCubeState.derotate(MCubeSide.FRONT)
        elif move_type is MCubeMoves.RIGHT_INVERS:
            self.magicCubeState.derotate(MCubeSide.RIGHT)
        elif move_type is MCubeMoves.DOWN_INVERS:
            self.magicCubeState.derotate(MCubeSide.DOWN)
        elif move_type is MCubeMoves.UP_INVERS:
            self.magicCubeState.derotate(MCubeSide.UP)
        elif move_type is MCubeMoves.LEFT_INVERS:
            self.magicCubeState.derotate(MCubeSide.LEFT)
        elif move_type is MCubeMoves.BACK_INVERS:
            self.magicCubeState.derotate(MCubeSide.BACK)

        elif move_type is MCubeMoves.FRONT_DOUBLE:
            self.magicCubeState.rotate(MCubeSide.FRONT)
            self.magicCubeState.rotate(MCubeSide.FRONT)
        elif move_type is MCubeMoves.RIGHT_DOUBLE:
            self.magicCubeState.rotate(MCubeSide.RIGHT)
            self.magicCubeState.rotate(MCubeSide.RIGHT)
        elif move_type is MCubeMoves.DOWN_DOUBLE:
            self.magicCubeState.rotate(MCubeSide.DOWN)
            self.magicCubeState.rotate(MCubeSide.DOWN)
        elif move_type is MCubeMoves.UP_DOUBLE:
            self.magicCubeState.rotate(MCubeSide.UP)
            self.magicCubeState.rotate(MCubeSide.UP)
        elif move_type is MCubeMoves.LEFT_DOUBLE:
            self.magicCubeState.rotate(MCubeSide.LEFT)
            self.magicCubeState.rotate(MCubeSide.LEFT)
        elif move_type is MCubeMoves.BACK_DOUBLE:
            self.magicCubeState.rotate(MCubeSide.BACK)
            self.magicCubeState.rotate(MCubeSide.BACK)

        elif move_type is MCubeMoves.FRONT_BACK:
            self.move(MCubeMoves.FRONT)
            self.move(MCubeMoves.BACK)
        elif move_type is MCubeMoves.FRONT_BACK_INVERS:
            self.move(MCubeMoves.FRONT)
            self.move(MCubeMoves.BACK_INVERS)
        elif move_type is MCubeMoves.FRONT_BACK_DOUBLE:
            self.move(MCubeMoves.FRONT)
            self.move(MCubeMoves.BACK_DOUBLE)
        elif move_type is MCubeMoves.RIGHT_LEFT:
            self.move(MCubeMoves.RIGHT)
            self.move(MCubeMoves.LEFT)
        elif move_type is MCubeMoves.RIGHT_LEFT_INVERS:
            self.move(MCubeMoves.RIGHT)
            self.move(MCubeMoves.LEFT_INVERS)
        elif move_type is MCubeMoves.RIGHT_LEFT_DOUBLE:
            self.move(MCubeMoves.RIGHT)
            self.move(MCubeMoves.LEFT_DOUBLE)
        elif move_type is MCubeMoves.UP_DOWN:
            self.move(MCubeMoves.UP)
            self.move(MCubeMoves.DOWN)
        elif move_type is MCubeMoves.UP_DOWN_INVERS:
            self.move(MCubeMoves.UP)
            self.move(MCubeMoves.DOWN_INVERS)
        elif move_type is MCubeMoves.UP_DOWN_DOUBLE:
            self.move(MCubeMoves.UP)
            self.move(MCubeMoves.DOWN_DOUBLE)

        elif move_type is MCubeMoves.FRONT_INVERS_BACK:
            self.move(MCubeMoves.FRONT_INVERS)
            self.move(MCubeMoves.BACK)
        elif move_type is MCubeMoves.FRONT_INVERS_BACK_INVERS:
            self.move(MCubeMoves.FRONT_INVERS)
            self.move(MCubeMoves.BACK_INVERS)
        elif move_type is MCubeMoves.FRONT_INVERS_BACK_DOUBLE:
            self.move(MCubeMoves.FRONT_INVERS)
            self.move(MCubeMoves.BACK_DOUBLE)
        elif move_type is MCubeMoves.RIGHT_INVERS_LEFT:
            self.move(MCubeMoves.RIGHT_INVERS)
            self.move(MCubeMoves.LEFT)
        elif move_type is MCubeMoves.RIGHT_INVERS_LEFT_INVERS:
            self.move(MCubeMoves.RIGHT_INVERS)
            self.move(MCubeMoves.LEFT_INVERS)
        elif move_type is MCubeMoves.RIGHT_INVERS_LEFT_DOUBLE:
            self.move(MCubeMoves.RIGHT_INVERS)
            self.move(MCubeMoves.LEFT_DOUBLE)
        elif move_type is MCubeMoves.UP_INVERS_DOWN:
            self.move(MCubeMoves.UP_INVERS)
            self.move(MCubeMoves.DOWN)
        elif move_type is MCubeMoves.UP_INVERS_DOWN_INVERS:
            self.move(MCubeMoves.UP_INVERS)
            self.move(MCubeMoves.DOWN_INVERS)
        elif move_type is MCubeMoves.UP_INVERS_DOWN_DOUBLE:
            self.move(MCubeMoves.UP)
            self.move(MCubeMoves.DOWN_DOUBLE)

        elif move_type is MCubeMoves.FRONT_DOUBLE_BACK:
            self.move(MCubeMoves.FRONT_DOUBLE)
            self.move(MCubeMoves.BACK)
        elif move_type is MCubeMoves.FRONT_DOUBLE_BACK_INVERS:
            self.move(MCubeMoves.FRONT_DOUBLE)
            self.move(MCubeMoves.BACK_INVERS)
        elif move_type is MCubeMoves.FRONT_DOUBLE_BACK_DOUBLE:
            self.move(MCubeMoves.FRONT_DOUBLE)
            self.move(MCubeMoves.BACK_DOUBLE)
        elif move_type is MCubeMoves.RIGHT_DOUBLE_LEFT:
            self.move(MCubeMoves.RIGHT_DOUBLE)
            self.move(MCubeMoves.LEFT)
        elif move_type is MCubeMoves.RIGHT_DOUBLE_LEFT_INVERS:
            self.move(MCubeMoves.RIGHT_DOUBLE)
            self.move(MCubeMoves.LEFT_INVERS)
        elif move_type is MCubeMoves.RIGHT_DOUBLE_LEFT_DOUBLE:
            self.move(MCubeMoves.RIGHT_DOUBLE)
            self.move(MCubeMoves.LEFT_DOUBLE)
        elif move_type is MCubeMoves.UP_DOUBLE_DOWN:
            self.move(MCubeMoves.UP_DOUBLE)
            self.move(MCubeMoves.DOWN)
        elif move_type is MCubeMoves.UP_DOUBLE_DOWN_INVERS:
            self.move(MCubeMoves.UP_DOUBLE)
            self.move(MCubeMoves.DOWN_INVERS)
        elif move_type is MCubeMoves.UP_DOUBLE_DOWN_DOUBLE:
            self.move(MCubeMoves.UP_DOUBLE)
            self.move(MCubeMoves.DOWN_DOUBLE)

    def moves(self,move_types):
        for move_type in move_types:
            self.move(move_type)