Exemple #1
0
        public void SudokuFilePuzzleProvider_IgnoresCommentsAndEmptyLines_WorksWithAllFormats_Test()
        {
            var filePath = Path.GetTempFileName();

            File.WriteAllText(filePath, $"#comment{Environment.NewLine} #comment{Environment.NewLine} {Environment.NewLine}");

            var separators = new[] { ",", " ", "\t", "" };
            var sudoku     = new int[9, 9];

            sudoku[1, 2] = 5;

            foreach (var separator in separators)
            {
                SaveSudokuUsingSeparator(sudoku, separator, filePath);
                var provider     = new SudokuFilePuzzleProvider(filePath);
                var sudokuPuzzle = provider.GetPuzzle();
                Assert.That(sudokuPuzzle[1, 2], Is.EqualTo(5));
            }

            File.Delete(filePath);
        }
        private SudokuPuzzle OnLoadGame()
        {
            var openFileDialog = new OpenFileDialog
            {
                CheckFileExists = true,
                Filter          = DialogFilter
            };

            if (openFileDialog.ShowDialog() == true)
            {
                try
                {
                    var sudoku = new SudokuFilePuzzleProvider(openFileDialog.FileName).GetPuzzle();
                    return(new SudokuPuzzle(sudoku));
                }
                catch (Exception)
                {
                    MessageBox.Show(this, $"Failed to load sudoku puzzle from file:\r\n{openFileDialog.FileName}", "Error loading Sudoku",
                                    MessageBoxButton.OK, MessageBoxImage.Error, MessageBoxResult.OK, MessageBoxOptions.None);
                }
            }
            return(null);
        }