print puzzle name in output
continuous-integration/drone/push Build is passing Details

This commit is contained in:
Ben Harris 2020-12-16 16:54:52 -05:00
parent 18311ecbac
commit 85f34fbd3a
18 changed files with 39 additions and 37 deletions

View File

@ -7,12 +7,14 @@ namespace aoc2020
{
public abstract class Day
{
protected Day(int dayNumber)
protected Day(int dayNumber, string puzzleName)
{
DayNumber = dayNumber;
PuzzleName = puzzleName;
}
public int DayNumber { get; }
public string PuzzleName { get; }
protected IEnumerable<string> Input =>
File.ReadLines(FileName);
@ -25,7 +27,7 @@ namespace aoc2020
public void AllParts(bool verbose = true)
{
Console.WriteLine($"Day {DayNumber}:");
Console.WriteLine($"Day {DayNumber,2}: {PuzzleName}");
var s = Stopwatch.StartNew();
var part1 = Part1();
s.Stop();

View File

@ -4,13 +4,13 @@ using System.Linq;
namespace aoc2020
{
/// <summary>
/// Day 1: <see href="https://adventofcode.com/2020/day/1">Report Repair</see>
/// Day 1: <see href="https://adventofcode.com/2020/day/1" />
/// </summary>
public sealed class Day01 : Day
{
private readonly ImmutableHashSet<int> _entries;
public Day01() : base(1)
public Day01() : base(1, "Report Repair")
{
_entries = Input.Select(int.Parse).ToImmutableHashSet();
}

View File

@ -4,13 +4,13 @@ using System.Linq;
namespace aoc2020
{
/// <summary>
/// Day 2: <see href="https://adventofcode.com/2020/day/1">Password Philosophy</see>
/// Day 2: <see href="https://adventofcode.com/2020/day/1" />
/// </summary>
public sealed class Day02 : Day
{
private readonly ImmutableList<Password> _passwords;
public Day02() : base(2)
public Day02() : base(2, "Password Philosophy")
{
_passwords = Input.Select(p => new Password(p)).ToImmutableList();
}

View File

@ -3,14 +3,14 @@ using System.Linq;
namespace aoc2020
{
/// <summary>
/// Day 3: <see href="https://adventofcode.com/2020/day/3">Toboggan Trajectory</see>
/// Day 3: <see href="https://adventofcode.com/2020/day/3" />
/// </summary>
public sealed class Day03 : Day
{
private readonly string[] _grid;
private readonly int _width;
public Day03() : base(3)
public Day03() : base(3, "Toboggan Trajectory")
{
_grid = Input.ToArray();
_width = _grid[0].Length;

View File

@ -6,13 +6,13 @@ using System.Text.RegularExpressions;
namespace aoc2020
{
/// <summary>
/// Day 4: <see href="https://adventofcode.com/2020/day/4">Passport Processing</see>
/// Day 4: <see href="https://adventofcode.com/2020/day/4" />
/// </summary>
public sealed class Day04 : Day
{
private readonly List<Passport> _passports;
public Day04() : base(4)
public Day04() : base(4, "Passport Processing")
{
_passports = new List<Passport>();

View File

@ -5,13 +5,13 @@ using System.Linq;
namespace aoc2020
{
/// <summary>
/// Day 5: <see href="https://adventofcode.com/2020/day/5">Binary Boarding</see>
/// Day 5: <see href="https://adventofcode.com/2020/day/5" />
/// </summary>
public sealed class Day05 : Day
{
private readonly ImmutableHashSet<int> _ids;
public Day05() : base(5)
public Day05() : base(5, "Binary Boarding")
{
_ids = Input
.Select(s =>

View File

@ -4,14 +4,14 @@ using System.Linq;
namespace aoc2020
{
/// <summary>
/// Day 6: <see href="https://adventofcode.com/2020/day/6">Custom Customs</see>
/// Day 6: <see href="https://adventofcode.com/2020/day/6" />
/// </summary>
public sealed class Day06 : Day
{
private readonly int _countPart1;
private readonly int _countPart2;
public Day06() : base(6)
public Day06() : base(6, "Custom Customs")
{
var alphabet = "abcedfghijklmnopqrstuvwxyz".ToCharArray();
_countPart1 = 0;

View File

@ -4,13 +4,13 @@ using System.Linq;
namespace aoc2020
{
/// <summary>
/// Day 7: <see href="https://adventofcode.com/2020/day/7">Handy Haversacks</see>
/// Day 7: <see href="https://adventofcode.com/2020/day/7" />
/// </summary>
public sealed class Day07 : Day
{
private readonly Dictionary<string, IEnumerable<(int, string)?>> _rules;
public Day07() : base(7)
public Day07() : base(7, "Handy Haversacks")
{
_rules = Input.Select(rule =>
{

View File

@ -3,7 +3,7 @@ using System.Linq;
namespace aoc2020
{
/// <summary>
/// Day 8: <see href="https://adventofcode.com/2020/day/8">Handheld Halting</see>
/// Day 8: <see href="https://adventofcode.com/2020/day/8" />
/// </summary>
public sealed class Day08 : Day
{
@ -11,7 +11,7 @@ namespace aoc2020
private int _accumulator;
private int _currentInstruction;
public Day08() : base(8)
public Day08() : base(8, "Handheld Halting")
{
_instructions = Input.Select(ParseLine).ToArray();
}

View File

@ -3,14 +3,14 @@ using System.Linq;
namespace aoc2020
{
/// <summary>
/// Day 9: <see href="https://adventofcode.com/2020/day/9">Encoding Error</see>
/// Day 9: <see href="https://adventofcode.com/2020/day/9" />
/// </summary>
public sealed class Day09 : Day
{
private readonly long[] _list;
private long _part1;
public Day09() : base(9)
public Day09() : base(9, "Encoding Error")
{
_list = Input.Select(long.Parse).ToArray();
}

View File

@ -4,14 +4,14 @@ using System.Linq;
namespace aoc2020
{
/// <summary>
/// Day 10: <see href="https://adventofcode.com/2020/day/10">Adapter Array</see>
/// Day 10: <see href="https://adventofcode.com/2020/day/10" />
/// </summary>
public sealed class Day10 : Day
{
private readonly int[] _adapters;
private readonly long[] _memo;
public Day10() : base(10)
public Day10() : base(10, "Adapter Array")
{
var parsed = Input.Select(int.Parse).ToArray();
// add socket and device to the list

View File

@ -5,11 +5,11 @@ using System.Linq;
namespace aoc2020
{
/// <summary>
/// Day 11: <see href="https://adventofcode.com/2020/day/11">Seating System</see>
/// Day 11: <see href="https://adventofcode.com/2020/day/11" />
/// </summary>
public sealed class Day11 : Day
{
public Day11() : base(11)
public Day11() : base(11, "Seating System")
{
}

View File

@ -3,11 +3,11 @@ using System;
namespace aoc2020
{
/// <summary>
/// Day 12: <see href="https://adventofcode.com/2020/day/12">Rain Risk</see>
/// Day 12: <see href="https://adventofcode.com/2020/day/12" />
/// </summary>
public sealed class Day12 : Day
{
public Day12() : base(12)
public Day12() : base(12, "Rain Risk")
{
}

View File

@ -3,7 +3,7 @@ using System.Linq;
namespace aoc2020
{
/// <summary>
/// Day 13: <see href="https://adventofcode.com/2020/day/13">Shuttle Search</see>
/// Day 13: <see href="https://adventofcode.com/2020/day/13" />
/// </summary>
public sealed class Day13 : Day
{
@ -11,7 +11,7 @@ namespace aoc2020
private readonly long _earliest;
private readonly string[] _fullSchedule;
public Day13() : base(13)
public Day13() : base(13, "Shuttle Search")
{
_earliest = long.Parse(Input.First());
_fullSchedule = Input.Last().Split(',');

View File

@ -5,11 +5,11 @@ using System.Linq;
namespace aoc2020
{
/// <summary>
/// Day 14: <see href="https://adventofcode.com/2020/day/14">Docking Data</see>
/// Day 14: <see href="https://adventofcode.com/2020/day/14" />
/// </summary>
public sealed class Day14 : Day
{
public Day14() : base(14)
public Day14() : base(14, "Docking Data")
{
}

View File

@ -3,7 +3,7 @@ using System.Linq;
namespace aoc2020
{
/// <summary>
/// Day 15: <see href="https://adventofcode.com/2020/day/15">Rambunctious Recitation</see>
/// Day 15: <see href="https://adventofcode.com/2020/day/15" />
/// </summary>
public sealed class Day15 : Day
{
@ -11,7 +11,7 @@ namespace aoc2020
private int _current;
private int _i;
public Day15() : base(15)
public Day15() : base(15, "Rambunctious Recitation")
{
var initial = Input.First().Split(',').Select(int.Parse).ToArray();
_turns = new int[30_000_000];

View File

@ -5,14 +5,14 @@ using System.Linq;
namespace aoc2020
{
/// <summary>
/// Day 16: <see href="https://adventofcode.com/2020/day/16">Ticket Translation</see>
/// Day 16: <see href="https://adventofcode.com/2020/day/16" />
/// </summary>
public sealed class Day16 : Day
{
private readonly Dictionary<string, List<Range>> _rules;
private readonly List<List<int>> _tickets;
public Day16() : base(16)
public Day16() : base(16, "Ticket Translation")
{
_tickets = new List<List<int>>();
_rules = new Dictionary<string, List<Range>>();

View File

@ -1,11 +1,11 @@
namespace aoc2020
{
/// <summary>
/// Day X: <see href="https://adventofcode.com/2020/day/X"></see>
/// Day X: <see href="https://adventofcode.com/2020/day/X" />
/// </summary>
public sealed class DayX : Day
{
public DayX() : base(X)
public DayX() : base(X, "")
{
}
@ -19,4 +19,4 @@ namespace aoc2020
return "";
}
}
}
}