/// <summary> /// Prints the solution. /// </summary> /// <param name="solution">The solution.</param> public static string PrintSolution(Solution <Position> solution) { System.Text.StringBuilder sb = new System.Text.StringBuilder(); List <State <Position> > list = solution.GetSolution(); List <int> list2 = new List <int>(); foreach (State <Position> state in list) { if (state.Parent != null) { if (state.GetPosition().Col < state.Parent.GetPosition().Col) { //sb.Append(MazeLib.Direction.Left); list2.Add((int)MazeLib.Direction.Left); } if (state.GetPosition().Col > state.Parent.GetPosition().Col) { // sb.Append(MazeLib.Direction.Right); list2.Add((int)MazeLib.Direction.Right); } if (state.GetPosition().Row < state.Parent.GetPosition().Row) { // sb.Append(MazeLib.Direction.Up); list2.Add((int)MazeLib.Direction.Up); } if (state.GetPosition().Row > state.Parent.GetPosition().Row) { // sb.Append(MazeLib.Direction.Down); list2.Add((int)MazeLib.Direction.Down); } } } foreach (int i in list2) { sb.Append(i.ToString()); //Console.Write(i); } return(sb.ToString()); }
/// <summary> /// Equalses the specified solution. /// </summary> /// <param name="solution">The solution.</param> /// <returns></returns> public bool Equals(Solution <T> solution) // we overload Object's Equals method { return(solutionList.Equals(solution.GetSolution())); }