def from_xml(xml_object, size): rubikscube = RubiksCube(size) for x in Helper.CUBE_SIDES: side = [[None for k in xrange(size)] for i in xrange(size)] for y in range(rubikscube.get_size()): for z in range(rubikscube.get_size()): value = xml_object.find(x+"/Part-"+str(y)+"-"+str(z)).text if value == str(None): side[y][z] = None else: side[y][z] = int(value) rubikscube.set_side(x, side) return rubikscube
def to_code_cube(input_cube): if input_cube.__class__ == RubiksCube().__class__: return input_cube cube = RubiksCube(input_cube.get_size(), False) for side in Helper.CUBE_SIDES: current_side = input_cube.get_side(side) for x in range(input_cube.get_size()): for y in range(input_cube.get_size()): if current_side[x][y].color in Helper.CUBE_COLOR: current_side[x][y] = Helper.CUBE_COLOR.index(current_side[x][y].color) else: current_side[x][y] = None cube.set_side(side, current_side) return cube
def filter_cube(self, input_cube, xml_cube): temp_cube = RubiksCube(self.cube_size, False) for side in Helper.CUBE_SIDES: current_side = input_cube.get_side(side) match_side = xml_cube.get_side(side) new_side = [] for x in range(self.cube_size): new_side.append([]) for y in range(self.cube_size): if match_side[x][y] is None: new_side[x].append(None) else: new_side[x].append(current_side[x][y]) temp_cube.set_side(side, new_side) return temp_cube