@@ -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