using System.IO; using uqac_ia_sudoku_csp.Interfaces; namespace uqac_ia_sudoku_csp.Solver.Generators { public class TextReaderGeneratorDbo { public TextReader Reader { get; set; } public string EmptyCharacters { get; set; } } public class TextReaderGenerator : IGenerator { public virtual void Generate(Board board, object data) { var dbo = data as TextReaderGeneratorDbo; for (var y = 0; y < board.Size; ++y) { for (var x = 0; x < board.Size; ++x) { string c; do { c = $"{(char)dbo.Reader.Read()}"; } while (!dbo.EmptyCharacters.Contains(c) && !board.Characters.Contains(c)); if (dbo.EmptyCharacters.Contains(c)) { board.ClearNumber(x, y); } else if (board.Characters.Contains(c)) { board.SetCharacter(x, y, c[0]); } } } } } }