static void PrintResultOnScreen(IPigeonHole sudokuPigeonHole) { HashSet <PuzzleCell <int> > puzz = sudokuPigeonHole.GetPuzzle(); for (int i = 0; i < puzzleRowCount; i++) { for (int j = 0; j < puzzleColCount; j++) { var v = puzz.Where(x => x.X == i && x.Y == j).Select(x => x.Items).ToArray(); foreach (var val in v) { foreach (var val2 in val) { Console.Write(val2 + "||"); } } //Console.Write("/t"); //Console.WriteLine(); } Console.WriteLine(); Console.WriteLine(); } }
static void Main(string[] args) { //Get command line arguments var cmdOption = new CommandOption(); var parser = new Parser(); #region Get commandline options and set execution parameters if (parser.ParseArguments(args, cmdOption)) { // consume CommandOptions type properties inputFile = cmdOption.InputFile; outputFile = cmdOption.OutputFile; errorFile = cmdOption.ErrorFile; } #endregion //check if input file is supplied if (inputFile == null) { LogErrorMessage("Error: No input file supplied \nProgram Terminated"); } /* * Initialize and solve Puzzle */ try { IPuzzle puzzle = new Puzzle(puzzleRowCount, puzzleColCount, subgridM, subgridN); puzzle.SetAlphabet(alphabet); puzzle.InitializeValues(cmdOption.InputFile); //Validate Initialization if (!puzzle.IsValid()) { LogErrorMessage("Error: Invalid parameters. \nProgram Terminated"); } //check if puzzle is already solved if (puzzle.IsSolved()) { LogErrorMessage("Error: Puzzle is already solved"); } else { _sudokuEngine = new Engine(puzzle); } //Attempt to solve puzzle, if puzzle is not yet solved if (_sudokuEngine != null) { Console.WriteLine("Solving Sudoku. Please wait..\n"); statusCode = _sudokuEngine.SolvePuzzle(); Console.WriteLine("Process completed..\n"); string finalXML = puzzle.GenerateFinalXml(); WriteOutputToFile(finalXML); //PrintResultOnScreen(_sudokuPigeonHole); } } catch (IOException e) { LogErrorMessage("Unable to read input file \n" + "Program Terminated."); statusCode = StatusCode.EncounteredError; } catch (Exception e) { LogErrorMessage("Unknown Error occured, check parameters \n Program Terminated"); statusCode = StatusCode.EncounteredError; } DisplayStatusCode(); }