static void Main(string[] args) { //Input Validation if (!IsValidParameters(args)) { return; } string inputFilename = args[0]; SudokuPuzzleReader reader = GetSudokuPuzzleReader(inputFilename); if (!IsValidSudokuPuzzleReader(reader)) { return; } Gameboard gameboard = reader.Read(inputFilename); string resultsToBeWritten = gameboard.ToString(true); if (gameboard.IsInitialBoardValid() && gameboard.IsValidGame) { RunSolvingAlgorithms(gameboard); resultsToBeWritten += gameboard.ToString(); resultsToBeWritten += GetTimesFromAlgs(); } string outputFilename = args.Length == 2 ? args[1] : null; SolutionWriter writer = GetSolutionWriter(outputFilename); writer.Write(outputFilename, resultsToBeWritten); }
static bool IsValidSudokuPuzzleReader(SudokuPuzzleReader myReader) { if (myReader == null) { Console.WriteLine("Invalid Input File. Supported types:"); foreach (SudokuPuzzleReader reader in SudokuPuzzleReaders) { Console.WriteLine(reader.Name); } return(false); } return(true); }
static SudokuPuzzleReader GetSudokuPuzzleReader(string inputFilename) { SudokuPuzzleReader result = null; string fileType = Path.GetExtension(inputFilename); foreach (SudokuPuzzleReader reader in SudokuPuzzleReaders) { if (fileType == reader.Name) { result = reader; break; } } return(result); }