void DrawInternal(TextWriter stream, IReadOnlyGrid <TCell> grid, IEnumerable <Point> possibleMovePoints, TCell owner) { var possibleMovePointSet = new HashSet <Point>(possibleMovePoints); for (int y = 0; y < grid.Height; y++) { for (int x = 0; x < grid.Width; x++) { if (possibleMovePointSet.Contains(new Point(x, y))) { stream.Write(possibleMovePointCharacter); } else { var cell = grid.GetCell(x, y); stream.Write(cellCharacterMap[cell]); } } stream.WriteLine(); } }