示例#1
0
        private static void LoadNodesFromXML(XElement a_element, SudokuSolutionNode a_parent)
        {
            a_element.Element("solution_nodes").Elements().ForEach(child_element =>
            {
                SudokuBoard board             = SudokuBoard.LoadFromXML(child_element.Element("board"));
                SudokuSolutionNode child_node = a_parent.AddNode(
                    board,
                    (SudokuSolutionNodeState)Enum.Parse(typeof(SudokuSolutionNodeState), child_element.Attribute("state").Value),
                    SudokuSolution.LoadFromXML(child_element.Element("solution"), board)
                    );

                LoadNodesFromXML(child_element, child_node);
            });
        }
        private static SudokuIntermediateSolution LoadFromXML(XElement a_element)
        {
            try
            {
                SudokuBoard    before   = SudokuBoard.LoadFromXML(a_element.Element("board_before"));
                SudokuBoard    after    = SudokuBoard.LoadFromXML(a_element.Element("board_after"));
                SudokuSolution solution = SudokuSolution.LoadFromXML(a_element.Element("solution"), before);

                SudokuIntermediateSolution intermediate_solution = new SudokuIntermediateSolution(before, after, solution);

                return(intermediate_solution);
            }
            catch
            {
                return(null);
            }
        }