diff options
Diffstat (limited to 'Day.cs')
-rw-r--r-- | Day.cs | 32 |
1 files changed, 22 insertions, 10 deletions
diff --git a/Day.cs b/Day.cs index f08e7cf..eb3ef49 100644 --- a/Day.cs +++ b/Day.cs @@ -2,32 +2,44 @@ using System.Collections.Generic; using System.Diagnostics; using System.IO; +using aoc2019.lib; namespace aoc2019 { public abstract class Day { - public abstract int DayNumber { get; } + protected Day(int dayNumber, string puzzleName) + { + DayNumber = dayNumber; + PuzzleName = puzzleName; + } + + public int DayNumber { get; } + public string PuzzleName { get; } protected virtual IEnumerable<string> Input => - File.ReadLines($"input/day{DayNumber}.in"); + File.ReadLines(FileName); + + protected string FileName => + Path.Combine(AppDomain.CurrentDomain.BaseDirectory, $"input/day{DayNumber,2:00}.in"); - public virtual void AllParts(bool verbose = false) + public void AllParts(bool verbose = true) { - Console.WriteLine($"Day {DayNumber}:"); - var s = new Stopwatch(); - s.Start(); + Console.WriteLine($"Day {DayNumber,2}: {PuzzleName}"); + var s = Stopwatch.StartNew(); var part1 = Part1(); s.Stop(); - if (verbose) Console.WriteLine($"part 1 elapsed ticks: {s.ElapsedTicks}"); - Console.WriteLine(part1); + Console.Write($"Part1: {part1,-15} "); + Console.WriteLine(verbose ? $"{s.ScaleMilliseconds()}ms elapsed" : ""); s.Reset(); + s.Start(); var part2 = Part2(); s.Stop(); - if (verbose) Console.WriteLine($"part 2 elapsed ticks: {s.ElapsedTicks}"); - Console.WriteLine(part2); + Console.Write($"Part2: {part2,-15} "); + Console.WriteLine(verbose ? $"{s.ScaleMilliseconds()}ms elapsed" : ""); + Console.WriteLine(); } |