Example #1
0
 def right_sequence(self, cubeCurrent, face):
     mixManager = mix.Mix()
     if face == "front":
         mixManager.runMix([ "D'", "R'", "D", "R", "D", "F", "D'", "F'" ], cubeCurrent)
         self.lst_moves = utils.append_list(self.lst_moves, [ "D'", "R'", "D", "R", "D", "F", "D'", "F'" ])
     elif face == "left":
         mixManager.runMix([ "D'", "F'", "D", "F", "D", "L", "D'", "L'" ], cubeCurrent)
         self.lst_moves = utils.append_list(self.lst_moves, [ "D'", "F'", "D", "F", "D", "L", "D'", "L'" ])
     elif face == "right":
         mixManager.runMix([ "D'", "B'", "D", "B", "D", "R", "D'", "R'"], cubeCurrent)
         self.lst_moves = utils.append_list(self.lst_moves, [ "D'", "B'", "D", "B", "D", "R", "D'", "R'"])
     elif face == "back":
         mixManager.runMix([ "D", "R", "D'", "R'", "D'", "B'", "D", "B" ], cubeCurrent)
         self.lst_moves = utils.append_list(self.lst_moves, [ "D", "R", "D'", "R'", "D'", "B'", "D", "B" ])
Example #2
0
 def change_side(self, cubeCurrent, face):
     """Re positionning edges"""
     mixManager = mix.Mix()
     if face == "front":
         mixManager.runMix(["F", "U'", "R", "U"], cubeCurrent)
         self.lst_moves = utils.append_list(self.lst_moves,
                                            ["F", "U'", "R", "U"])
     elif face == "right":
         mixManager.runMix(["R", "U'", "B", "U"], cubeCurrent)
         self.lst_moves = utils.append_list(self.lst_moves,
                                            ["R", "U'", "B", "U"])
     elif face == "left":
         mixManager.runMix(["L", "U'", "F", "U"], cubeCurrent)
         self.lst_moves = utils.append_list(self.lst_moves,
                                            ["L", "U'", "F", "U"])
     elif face == "back":
         mixManager.runMix(["B", "U'", "L", "U"], cubeCurrent)
         self.lst_moves = utils.append_list(self.lst_moves,
                                            ["B", "U'", "L", "U"])
Example #3
0
 def move_side(self, cubeCurrent, color_one, color_two, color_three, face):
     mixManager = mix.Mix()
     while self.finished_three_color_pos(cubeCurrent, color_one, color_two,
                                         color_three) is False:
         if face == "front":
             mixManager.runMix(["R'", "D'", "R", "D"], cubeCurrent)
             self.lst_moves = utils.append_list(self.lst_moves,
                                                ["R'", "D'", "R", "D"])
         elif face == "right":
             mixManager.runMix(["B'", "D'", "B", "D"], cubeCurrent)
             self.lst_moves = utils.append_list(self.lst_moves,
                                                ["B'", "D'", "B", "D"])
         elif face == "back":
             mixManager.runMix(["L'", "D'", "L", "D"], cubeCurrent)
             self.lst_moves = utils.append_list(self.lst_moves,
                                                ["L'", "D'", "L", "D"])
         elif face == "left":
             mixManager.runMix(["F'", "D'", "F", "D"], cubeCurrent)
             self.lst_moves = utils.append_list(self.lst_moves,
                                                ["F'", "D'", "F", "D"])
Example #4
0
 def corner_change(self, cubeCurrent, face):
     mixManager = mix.Mix()
     if face == "front":
         mixManager.runMix(["L", "D", "L'", "D", "L", "D2", "L'", "D"],
                           cubeCurrent)
         self.lst_moves = utils.append_list(
             self.lst_moves, ["L", "D", "L'", "D", "L", "D2", "L'", "D"])
     elif face == "back":
         mixManager.runMix(["R", "D", "R'", "D", "R", "D2", "R'", "D"],
                           cubeCurrent)
         self.lst_moves = utils.append_list(
             self.lst_moves, ["R", "D", "R'", "D", "R", "D2", "R'", "D"])
     elif face == "right":
         mixManager.runMix(["F", "D", "F'", "D", "F", "D2", "F'", "D"],
                           cubeCurrent)
         self.lst_moves = utils.append_list(
             self.lst_moves, ["F", "D", "F'", "D", "F", "D2", "F'", "D"])
     elif face == "left":
         mixManager.runMix(["B", "D", "B'", "D", "B", "D2", "B'", "D"],
                           cubeCurrent)
         self.lst_moves = utils.append_list(
             self.lst_moves, ["B", "D", "B'", "D", "B", "D2", "B'", "D"])
Example #5
0
 def run(self, cubeCurrent, lst_moves):
     self.set_lst_moves(lst_moves)
     mixManager = mix.Mix()
     to_move = ["F", "L", "D", "L'", "D'", "F'"]
     one, two = utils.check_back_state(cubeCurrent.down, "yellow")
     if one == 4:
             return self.lst_moves
     if one == 1:
             mixManager.runMix(to_move, cubeCurrent)
             self.lst_moves = utils.append_list(self.lst_moves, to_move)
     one, two = utils.check_back_state(cubeCurrent.down, "yellow")
     if one == 2 and two == 0:
             mixManager.runMix(to_move, cubeCurrent)
             self.lst_moves = utils.append_list(self.lst_moves, to_move)
     elif one == 2 and two == 1:
             mixManager.runMix(["D'", "F", "L", "D", "L'", "D'", "F'"], cubeCurrent)
             self.lst_moves = utils.append_list(self.lst_moves, ["D'", "F", "L", "D", "L'", "D'", "F'"])
     elif one == 2 and two == 2:
             mixManager.runMix(["D'", "D'", "F", "L", "D", "L'", "D'", "F'"], cubeCurrent)
             self.lst_moves = utils.append_list(self.lst_moves, ["D'", "D'", "F", "L", "D", "L'", "D'", "F'"])
     elif one == 2 and two == 3:
             mixManager.runMix(["D", "F", "L", "D", "L'", "D'", "F'"], cubeCurrent)
             self.lst_moves = utils.append_list(self.lst_moves, ["D", "F", "L", "D", "L'", "D'", "F'"])
     one,two = utils.check_back_state(cubeCurrent.down, "yellow")		
     
     if one == 3 and two == 0:
             mixManager.runMix(to_move, cubeCurrent)
             self.lst_moves = utils.append_list(self.lst_moves, to_move)
     elif one == 3 and two == 1:
             mixManager.runMix(["D", "F", "L", "D", "L'", "D'", "F'"], cubeCurrent)
             self.lst_moves = utils.append_list(self.lst_moves, ["D", "F", "L", "D", "L'", "D'", "F'"])
     
     one,two = utils.check_back_state(cubeCurrent.down, "yellow")
     if one == 4:
             return self.lst_moves
     return self.lst_moves
Example #6
0
 def move_to_next_pos(self, cubeCurrent, list_mix):
     mixManager = mix.Mix()
     mixManager.runMix(list_mix, cubeCurrent)
     self.lst_moves = utils.append_list(self.lst_moves, list_mix)
Example #7
0
 def move_side(self, cubeCurrent, lst_colors):
     mixManager = mix.Mix()
     while self.finished_three_color_pos(cubeCurrent, lst_colors) is False:
         mixManager.runMix(["L'", "U'", "L", "U"], cubeCurrent)
         self.lst_moves = utils.append_list(self.lst_moves, ["L'", "U'", "L", "U"])
Example #8
0
from SecondaryFunctions import utils, mix
from Algorithm import Algo as a
import sys
import cubik as c

if __name__ == "__main__":
    args = utils.arg_parse()
    cube = c.Cube(3)
    mix_ = mix.Mix()
    if args.mix is None:
        lst_moves = mix_.create()
    else:
        lst_moves = args.mix
        lst_moves = lst_moves.split(' ')
        if mix_.valid(lst_moves) is False:
            print(
                "The hand written mix seems to be weird, please try again with a valid mix."
            )
            sys.exit(0)
    #-----------------------------------------#
    #           Cube Shuffle                  #
    cube = mix_.runMix(lst_moves, cube)
    cube.print_cube()
    #                                         #
    #-----------------------------------------#

    #-----------------------------------------#
    #           Cube Solve                    #
    algo = a.Algo(cube)
    solution = algo.run(args.explain)
    #                                         #