Skip to content

Commit b61c293

Browse files
committed
More compact console output
1 parent 738e2e0 commit b61c293

File tree

1 file changed

+45
-17
lines changed

1 file changed

+45
-17
lines changed

src/AdventOfCode.Console/Services/SolutionRunner.cs

Lines changed: 45 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ public async Task RunDayAsync(int year, int day)
7676
return;
7777
}
7878

79-
var solution = solutionMetadata.CreateInstance();
79+
var solution = solutionMetadata.CreateInstance();
8080

8181
var dayString = day.ToString().PadLeft(2, '0');
8282
var rootDir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
@@ -90,28 +90,56 @@ public async Task RunDayAsync(int year, int day)
9090

9191
var input = await File.ReadAllTextAsync(inputFile);
9292

93-
var table = new Table()
94-
.Border(TableBorder.Rounded)
95-
.BorderColor(Color.Blue)
96-
.AddColumn(new TableColumn("[bold]Part[/]").Centered())
97-
.AddColumn(new TableColumn("[bold]Result[/]").LeftAligned())
98-
.AddColumn(new TableColumn("[bold]Time[/]").RightAligned());
99-
100-
AnsiConsole.Write(new Panel($"[bold blue]Day {day}: {solutionMetadata.Title}[/]")
101-
.Border(BoxBorder.Double)
102-
.BorderColor(Color.Blue));
103-
10493
// Run Part 1
10594
var (result1, time1) = await RunPartAsync(input, solution.Part1Async, solution);
106-
table.AddRow("[yellow]1[/]", result1.Contains(Environment.NewLine) ?
107-
$"[dim]{Environment.NewLine}{result1}[/]" : result1, $"[green]{time1}ms[/]");
10895

10996
// Run Part 2
11097
var (result2, time2) = await RunPartAsync(input, solution.Part2Async, solution);
111-
table.AddRow("[yellow]2[/]", result2.Contains(Environment.NewLine) ?
112-
$"[dim]{Environment.NewLine}{result2}[/]" : result2, $"[green]{time2}ms[/]");
11398

114-
AnsiConsole.Write(table);
99+
// Create a compact grid layout combining title and results
100+
var grid = new Grid();
101+
102+
// Add columns: Day/Part, Result, and Time
103+
grid.AddColumn(new GridColumn().Width(12)); // Day/Part column
104+
grid.AddColumn(new GridColumn()); // Result column (expandable)
105+
grid.AddColumn(new GridColumn().Width(10).PadLeft(1)); // Time column
106+
107+
// Add day title row spanning across columns
108+
grid.AddRow(
109+
new Markup($"[bold blue]Day {day}[/]"),
110+
new Markup($"[bold blue]{solutionMetadata.Title}[/]"),
111+
Text.Empty
112+
);
113+
114+
// Add separator row
115+
grid.AddRow(
116+
new Markup("[dim]────────────[/]"),
117+
new Markup("[dim]────────────────────────────────────────[/]"),
118+
new Markup("[dim]──────────[/]")
119+
);
120+
121+
// Add Part 1 results
122+
var part1Result = result1.Contains(Environment.NewLine) ?
123+
$"[dim]{result1.Trim()}[/]" : result1;
124+
125+
grid.AddRow(
126+
new Markup("[yellow]Part 1[/]"),
127+
new Markup(part1Result),
128+
new Markup($"[green]{time1}ms[/]")
129+
);
130+
131+
// Add Part 2 results
132+
var part2Result = result2.Contains(Environment.NewLine) ?
133+
$"[dim]{result2.Trim()}[/]" : result2;
134+
135+
grid.AddRow(
136+
new Markup("[yellow]Part 2[/]"),
137+
new Markup(part2Result),
138+
new Markup($"[green]{time2}ms[/]")
139+
);
140+
141+
// Display the grid directly without border
142+
AnsiConsole.Write(grid);
115143
AnsiConsole.WriteLine();
116144
}
117145

0 commit comments

Comments
 (0)