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