private static void displayResult(SolverResult result, bool displayAll) { Console.WriteLine(); if (displayAll || result.ResultSequence.Count <= RESULT_STATES_PARTLY_DISPLAY_COUNT * 2) { foreach (var state in result.ResultSequence) { GridLogger.Log(result.Height, result.Width, state); } } else { for (int i = 0; i < RESULT_STATES_PARTLY_DISPLAY_COUNT; i++) { GridLogger.Log(result.Height, result.Width, result.ResultSequence[i]); } Console.WriteLine("."); Console.WriteLine("."); Console.WriteLine("."); Console.WriteLine("Other {0} states.", result.ResultSequence.Count - RESULT_STATES_PARTLY_DISPLAY_COUNT * 2); Console.WriteLine("."); Console.WriteLine("."); Console.WriteLine("."); for (int i = result.ResultSequence.Count - RESULT_STATES_PARTLY_DISPLAY_COUNT - 1; i < result.ResultSequence.Count; i++) { GridLogger.Log(result.Height, result.Width, result.ResultSequence[i]); } } }
public static void ProcessSolverResult(SolverResult solverResult) { Console.WriteLine("Result:"); if (solverResult == null) { Console.WriteLine("Didn't find solution in the given iterations."); } else { bool listAllPossibilities; Console.WriteLine("Solution has {0} steps.", solverResult.ResultSequence.Count); Console.WriteLine(); Console.WriteLine("Applied operators:"); Console.WriteLine(); foreach (var op in solverResult.AppliedOperators) { Console.WriteLine(op); } Console.WriteLine(); while (true) { Console.Write("Do you want to list all {0} steps? Y/N ", solverResult.ResultSequence.Count); var input = Console.ReadLine(); var decision = processDecision(input); if (decision == null) { continue; } listAllPossibilities = (bool)decision; break; } displayResult(solverResult, listAllPossibilities); } }