private static string Print(Sky sky) { var builder = new StringBuilder(); var minX = sky.Lights.Min(l => l.Position.X); var minY = sky.Lights.Min(l => l.Position.Y); var maxX = sky.Lights.Max(l => l.Position.X); var maxY = sky.Lights.Max(l => l.Position.Y); for (var j = minY; j <= maxY; ++j) { for (var i = minX; i <= maxX; ++i) { builder.Append(sky.Contains(i, j) ? '#' : ' '); } builder.AppendLine(); } return(builder.ToString()); }