class HandleFiles(): def __init__(self, display): self.display = display self.__window = display.cube_gui.get_window_frame() self.current_xml = XmlObject("Some1", self.display._storage.cube_size) self._xml_parser = XmlParser() def _write_to_storage(self): self.display._storage._start_cube = RubiksCubeConverter.to_visual_cube(self.current_xml._start_cube) self.display._storage._result_cube = RubiksCubeConverter.to_visual_cube(self.current_xml._result_cube) self.display._storage._code_cube = RubiksCubeConverter.to_visual_cube(self.current_xml._start_cube) self.display._panels.action.steps = self.current_xml._codes self.display._panels.action._reset_textbox() def _read_from_storage(self): self.current_xml.set_start(self.display._storage._start_cube) self.current_xml.set_result(self.display._storage._result_cube) self.current_xml.set_code(self.display._panels.action.steps) def open(self, event): openFileDialog = wx.FileDialog(self.__window, "Open XML file", self._xml_parser.CONST_XML_LOCATION, "", "XML files (*.xml)|*.xml", wx.FD_OPEN | wx.FD_FILE_MUST_EXIST) if openFileDialog.ShowModal() == wx.ID_OK: filename = openFileDialog.GetFilename() directory = openFileDialog.GetDirectory() self.current_xml = self._xml_parser.read_file(directory + "/" + filename) self._write_to_storage() openFileDialog.Destroy() def save(self, event): saveFileDialog = wx.FileDialog(self.__window, "Save XML file", self._xml_parser.CONST_XML_LOCATION, "", "XML files (*.xml)|*.xml", wx.FD_SAVE | wx.FD_OVERWRITE_PROMPT) if saveFileDialog.ShowModal() == wx.ID_OK: filename = saveFileDialog.GetFilename() directory = saveFileDialog.GetDirectory() self._read_from_storage() self._xml_parser.new_file(directory + "/" + filename, self.current_xml) saveFileDialog.Destroy() def close(self, event): pass
def _next_set(self, current_cube, set_num): local_cube = copy.deepcopy(current_cube) for side in Helper.CUBE_SIDES: current_side = local_cube.get_side(side) for x in range(self.cube_size): for y in range(self.cube_size): if current_side[x][y] is not None: current_side[x][y] = (current_side[x][y] + set_num) % 6 local_cube.set_side(side, current_side) return local_cube myXml = XmlParser() myObject = myXml.read_file("2.1.xml", True) myObject2 = myXml.read_file("xxx_cube.xml", True) x = RubiksCube(3) x2 = RubiksCube(3) x2.turn_z(-1,1) #RubiksCubeConverter.to_visual_cube(myObject._start_cube) #RubiksCubeConverter.to_visual_cube(myObject2._start_cube) main = PatternFinder(3) #print main.find_pattern(x, x2) print main.find_pattern(myObject2._start_cube, myObject._start_cube)
def __init__(self, display): self.display = display self.__window = display.cube_gui.get_window_frame() self.current_xml = XmlObject("Some1", self.display._storage.cube_size) self._xml_parser = XmlParser()