public void Update() { while (true) { Console.Clear(); if (!streamParser.TryParse(Console.In, out string streamResult)) { continue; } if (!gridParser.TryParse(streamResult, out var grid)) { continue; } Console.WriteLine(); var owner = CellColor.Black; var finder = new PossibleMoveCellFinder(grid); var possibleMovePoints = finder.Find(owner); gridDrawer.Draw(grid, possibleMovePoints, owner); Console.ReadKey(); break; } }
string[] MarkPossibleMovePoints(CellColor owner, params string[] textLines) { var text = string.Join(Environment.NewLine, textLines); if (!gridParser.TryParse(text, out var grid)) { throw new TestGridParseFailedException(); } var finder = new PossibleMoveCellFinder(grid); var possibleMovePoints = finder.Find(owner); var output = gridWriter.WriteToString(grid, possibleMovePoints, owner); return(output.Split(Environment.NewLine.ToCharArray(), StringSplitOptions.RemoveEmptyEntries)); }
static void Main(string[] args) { var streamParser = new StreamParser(new char[] { '.', 'B', 'W' }); var gridParser = new GridParser <CellColor>(new Dictionary <char, CellColor>() { { '.', CellColor.Blank }, { 'W', CellColor.White }, { 'B', CellColor.Black } }); var gridWriter = new GridTextDrawer <CellColor>(Console.Out, new Dictionary <CellColor, char>() { { CellColor.Blank, '.' }, { CellColor.White, 'W' }, { CellColor.Black, 'B' } }, '0'); while (true) { Console.Clear(); if (!streamParser.TryParse(Console.In, out string streamResult)) { continue; } if (!gridParser.TryParse(streamResult, out var grid)) { continue; } Console.WriteLine(); var owner = CellColor.Black; var finder = new PossibleMoveCellFinder(grid); var possibleMovePoints = finder.Find(owner); gridWriter.Draw(grid, possibleMovePoints, owner); Console.ReadKey(); break; } }