public bool Test(bool a_all)
        {
            if (m_after == null)
            {
                return(false);
            }
            if (m_solution == null)
            {
                return(false);
            }

            SudokuSolutionNode node = SudokuSolutionNode.CreateRoot(m_before);

            if (a_all)
            {
                node.StepAll();
            }
            else
            {
                node.Step(m_solution.Type);
            }

            SudokuSolutionNode solved_node = node.Nodes.FirstOrDefault(n => n.Solution.Equals(m_solution));

            if (solved_node == null)
            {
                return(false);
            }

            return(m_after.Equals(solved_node.NextBoard));
        }
Пример #2
0
        private static SudokuSolutionNode LoadFromXML(XElement a_element)
        {
            try
            {
                SudokuSolutionNode node = SudokuSolutionNode.CreateRoot(SudokuBoard.LoadFromXML(a_element.Element("board")));

                Debug.Assert(a_element.Element("solution").IsEmpty);

                LoadNodesFromXML(a_element, node);

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