diff --git a/AOC.Common/Day.cs b/AOC.Common/Day.cs index 0e43013..eafa296 100644 --- a/AOC.Common/Day.cs +++ b/AOC.Common/Day.cs @@ -2,23 +2,66 @@ using CommandLine; namespace AOC.Common; +/// +/// Base class for a day's solution. Provides stopwatch timing and command line parsing. +/// +/// +/// +/// public abstract class Day(int year, int day, string puzzleName) { + /// + /// The year this Day is from. + /// public int Year { get; } = year; + /// + /// What day it is. + /// public int DayNumber { get; } = day; + /// + /// The name of the puzzle. + /// public string PuzzleName { get; } = puzzleName; + /// + /// Enumerable of all lines in the input file. + /// protected IEnumerable Input => File.ReadLines(FileName); + + /// + /// Input file as a span. + /// + protected ReadOnlySpan InputBytes => File.ReadAllText(FileName); + /// + /// Path to the input file in the format of "inputYEAR/dayNN.in". + /// public string FileName => Path.Combine(AppDomain.CurrentDomain.BaseDirectory, $"input{Year}/{(UseTestInput ? "test" : "day")}{DayNumber,2:00}.in"); + /// + /// A toggle to read the test input file instead of the real input. + /// public static bool UseTestInput { get; set; } private readonly Stopwatch _stopwatch = new(); - public abstract void ProcessInput(); + /// + /// Initial parsing of the puzzle input. + /// + public virtual void ProcessInput() + { + } + + /// + /// Solve Part 1. + /// + /// object whose string representation will be the answer public abstract object Part1(); + /// + /// Solve Part 2. + /// + /// object whose string representation will be the answer public abstract object Part2(); private void PrintProcessInput() @@ -63,6 +106,12 @@ public abstract class Day(int year, int day, string puzzleName) public int? PartNumber { get; set; } } + /// + /// Parse the command line args and run the appropriate puzzles. + /// + /// + /// + /// public static void RunFromArgs(string[] args) { var days = Assembly.GetEntryAssembly()?.GetTypes() diff --git a/AOC.Test/Test2023.cs b/AOC.Test/Test2023.cs index 3f6623a..c17fb71 100644 --- a/AOC.Test/Test2023.cs +++ b/AOC.Test/Test2023.cs @@ -18,6 +18,7 @@ public class Test2023 [DataRow(typeof(Day02), "8", "2286")] [DataRow(typeof(Day03), "4361", "467835")] [DataRow(typeof(Day04), "13", "30")] + // [DataRow(typeof(Day05), "35", "")] public void CheckTestInputs(Type dayType, string part1, string part2) => Common.CheckDay(dayType, part1, part2, true); } diff --git a/AOC2015/Day01.cs b/AOC2015/Day01.cs index c7e9717..ec0b412 100644 --- a/AOC2015/Day01.cs +++ b/AOC2015/Day01.cs @@ -2,10 +2,6 @@ namespace AOC2015; public class Day01() : Day(2015, 1, "Not Quite Lisp") { - public override void ProcessInput() - { - } - public override object Part1() { var floor = 0; diff --git a/AOC2015/Day03.cs b/AOC2015/Day03.cs index d0d6c6b..f5297f3 100644 --- a/AOC2015/Day03.cs +++ b/AOC2015/Day03.cs @@ -5,10 +5,6 @@ namespace AOC2015; /// public sealed class Day03() : Day(2015, 3, "Perfectly Spherical Houses in a Vacuum") { - public override void ProcessInput() - { - } - public override object Part1() { int x = 0, y = 0; diff --git a/AOC2015/Day06.cs b/AOC2015/Day06.cs index 4ab03cd..cd0d9d1 100644 --- a/AOC2015/Day06.cs +++ b/AOC2015/Day06.cs @@ -11,10 +11,6 @@ public sealed partial class Day06() : Day(2015, 6, "Probably a Fire Hazard") [GeneratedRegex(@"(\d+),(\d+) through (\d+),(\d+)")] private static partial Regex Coords(); - public override void ProcessInput() - { - } - public override object Part1() { foreach (var line in Input) diff --git a/AOC2015/Day07.cs b/AOC2015/Day07.cs index cd09a5e..d694fa3 100644 --- a/AOC2015/Day07.cs +++ b/AOC2015/Day07.cs @@ -8,10 +8,6 @@ public sealed class Day07() : Day(2015, 7, "Some Assembly Required") private readonly Dictionary> _actions = []; private readonly Dictionary _wires = []; - public override void ProcessInput() - { - } - public override object Part1() { ProcessInstructions(); @@ -116,4 +112,4 @@ public sealed class Day07() : Day(2015, 7, "Some Assembly Required") _actions["b"] = () => p1; return _actions["a"](); } -} \ No newline at end of file +} diff --git a/AOC2015/Day08.cs b/AOC2015/Day08.cs index 28851e8..ced45cf 100644 --- a/AOC2015/Day08.cs +++ b/AOC2015/Day08.cs @@ -8,10 +8,6 @@ public sealed partial class Day08() : Day(2015, 8, "Matchsticks") [GeneratedRegex("""^"(\\x..|\\.|.)*"$""")] private static partial Regex CharSet(); - public override void ProcessInput() - { - } - private static int CharCount(string arg) => CharSet().Match(arg).Groups[1].Captures.Count; private static int EncodedCount(string arg) => 2 + arg.Sum(c => c is '\\' or '\"' ? 2 : 1); diff --git a/AOC2015/Day12.cs b/AOC2015/Day12.cs index f852582..c4d2a3c 100644 --- a/AOC2015/Day12.cs +++ b/AOC2015/Day12.cs @@ -11,10 +11,6 @@ public sealed partial class Day12() : Day(2015, 12, "JSAbacusFramework.io") [GeneratedRegex(@"-?\d+")] private static partial Regex Digits(); - public override void ProcessInput() - { - } - public override object Part1() => Digits().Matches(Input.First()).Sum(n => int.Parse(n.Value)); diff --git a/AOC2015/Day16.cs b/AOC2015/Day16.cs index 446aefc..6427e27 100644 --- a/AOC2015/Day16.cs +++ b/AOC2015/Day16.cs @@ -8,10 +8,6 @@ public sealed partial class Day16() : Day(2015, 16, "Aunt Sue") [GeneratedRegex(@": \d\d")] private static partial Regex TwoDigitsRegex(); - public override void ProcessInput() - { - } - private IEnumerable Common() => Input .Select(i => TwoDigitsRegex().Replace(i, ": 9")) diff --git a/AOC2015/Day23.cs b/AOC2015/Day23.cs index 8de06b8..b4e98e2 100644 --- a/AOC2015/Day23.cs +++ b/AOC2015/Day23.cs @@ -5,10 +5,6 @@ namespace AOC2015; /// public sealed class Day23() : Day(2015, 23, "Opening the Turing Lock") { - public override void ProcessInput() - { - } - private int RunOperations(int initialA = 0, int initialB = 0) { Dictionary registers = new() @@ -53,4 +49,4 @@ public sealed class Day23() : Day(2015, 23, "Opening the Turing Lock") public override object Part1() => RunOperations(); public override object Part2() => RunOperations(1); -} \ No newline at end of file +} diff --git a/AOC2015/Day24.cs b/AOC2015/Day24.cs index 1ad27c0..c29a3d6 100644 --- a/AOC2015/Day24.cs +++ b/AOC2015/Day24.cs @@ -5,10 +5,6 @@ namespace AOC2015; /// public sealed class Day24() : Day(2015, 24, "It Hangs in the Balance") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2016/Day02.cs b/AOC2016/Day02.cs index 6790e93..e3a8f1c 100644 --- a/AOC2016/Day02.cs +++ b/AOC2016/Day02.cs @@ -5,10 +5,6 @@ namespace AOC2016; /// public sealed class Day02() : Day(2016, 2, "Bathroom Security") { - public override void ProcessInput() - { - } - public override object Part1() { List answer = []; diff --git a/AOC2016/Day05.cs b/AOC2016/Day05.cs index f0d0c77..75b4e28 100644 --- a/AOC2016/Day05.cs +++ b/AOC2016/Day05.cs @@ -7,10 +7,6 @@ namespace AOC2016; /// public sealed class Day05() : Day(2016, 5, "How About a Nice Game of Chess?") { - public override void ProcessInput() - { - } - public override object Part1() { var s = Input.First(); @@ -55,4 +51,4 @@ public sealed class Day05() : Day(2016, 5, "How About a Nice Game of Chess?") return new string(answer); } -} \ No newline at end of file +} diff --git a/AOC2016/Day07.cs b/AOC2016/Day07.cs index fc31f23..4ccf991 100644 --- a/AOC2016/Day07.cs +++ b/AOC2016/Day07.cs @@ -11,10 +11,6 @@ public sealed partial class Day07() : Day(2016, 7, "Internet Protocol Version 7" [GeneratedRegex(@"\[(\w*)\]")] private static partial Regex InsideBracketsRegex(); - public override void ProcessInput() - { - } - private static bool SupportsTls(string input) => !InsideBracketsRegex().Matches(input).Any(m => CheckAbba(m.ValueSpan)) && BracketsRegex().Split(input).Any(v => CheckAbba(v)); diff --git a/AOC2016/Day08.cs b/AOC2016/Day08.cs index 858d542..2edc16e 100644 --- a/AOC2016/Day08.cs +++ b/AOC2016/Day08.cs @@ -5,10 +5,6 @@ namespace AOC2016; /// public sealed class Day08() : Day(2016, 8, "Two-Factor Authentication") { - public override void ProcessInput() - { - } - private static string PrintGrid(char[,] screen) { var sb = new StringBuilder(); diff --git a/AOC2016/Day09.cs b/AOC2016/Day09.cs index 8ce2006..50d1920 100644 --- a/AOC2016/Day09.cs +++ b/AOC2016/Day09.cs @@ -5,10 +5,7 @@ namespace AOC2016; /// public sealed class Day09() : Day(2016, 9, "Puzzle Name") { - public override void ProcessInput() - { - } - + public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2016/Day10.cs b/AOC2016/Day10.cs index 389e61a..b828818 100644 --- a/AOC2016/Day10.cs +++ b/AOC2016/Day10.cs @@ -5,10 +5,6 @@ namespace AOC2016; /// public sealed class Day10() : Day(2016, 10, "Puzzle Name") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2016/Day11.cs b/AOC2016/Day11.cs index 6cc0349..58f3437 100644 --- a/AOC2016/Day11.cs +++ b/AOC2016/Day11.cs @@ -5,10 +5,6 @@ namespace AOC2016; /// public sealed class Day11() : Day(2016, 11, "Puzzle Name") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2016/Day12.cs b/AOC2016/Day12.cs index 8f54020..44d4993 100644 --- a/AOC2016/Day12.cs +++ b/AOC2016/Day12.cs @@ -5,10 +5,6 @@ namespace AOC2016; /// public sealed class Day12() : Day(2016, 12, "Puzzle Name") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2016/Day13.cs b/AOC2016/Day13.cs index 823dbf7..3888b91 100644 --- a/AOC2016/Day13.cs +++ b/AOC2016/Day13.cs @@ -5,10 +5,6 @@ namespace AOC2016; /// public sealed class Day13() : Day(2016, 13, "Puzzle Name") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2016/Day14.cs b/AOC2016/Day14.cs index bad147c..870bfbd 100644 --- a/AOC2016/Day14.cs +++ b/AOC2016/Day14.cs @@ -5,10 +5,6 @@ namespace AOC2016; /// public sealed class Day14() : Day(2016, 14, "Puzzle Name") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2016/Day15.cs b/AOC2016/Day15.cs index 33a7b77..b437418 100644 --- a/AOC2016/Day15.cs +++ b/AOC2016/Day15.cs @@ -5,10 +5,6 @@ namespace AOC2016; /// public sealed class Day15() : Day(2016, 15, "Puzzle Name") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2016/Day16.cs b/AOC2016/Day16.cs index b668150..d5e514f 100644 --- a/AOC2016/Day16.cs +++ b/AOC2016/Day16.cs @@ -5,10 +5,6 @@ namespace AOC2016; /// public sealed class Day16() : Day(2016, 16, "Puzzle Name") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2016/Day17.cs b/AOC2016/Day17.cs index 849d3bb..3b40ed2 100644 --- a/AOC2016/Day17.cs +++ b/AOC2016/Day17.cs @@ -5,10 +5,6 @@ namespace AOC2016; /// public sealed class Day17() : Day(2016, 17, "Puzzle Name") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2016/Day18.cs b/AOC2016/Day18.cs index 2f069b2..ced922f 100644 --- a/AOC2016/Day18.cs +++ b/AOC2016/Day18.cs @@ -5,10 +5,6 @@ namespace AOC2016; /// public sealed class Day18() : Day(2016, 18, "Puzzle Name") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2016/Day19.cs b/AOC2016/Day19.cs index 87ac6aa..3e0e402 100644 --- a/AOC2016/Day19.cs +++ b/AOC2016/Day19.cs @@ -5,10 +5,6 @@ namespace AOC2016; /// public sealed class Day19() : Day(2016, 19, "Puzzle Name") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2016/Day20.cs b/AOC2016/Day20.cs index 98c89be..8e03469 100644 --- a/AOC2016/Day20.cs +++ b/AOC2016/Day20.cs @@ -5,10 +5,6 @@ namespace AOC2016; /// public sealed class Day20() : Day(2016, 20, "Puzzle Name") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2016/Day21.cs b/AOC2016/Day21.cs index c62a5e3..4d4c06d 100644 --- a/AOC2016/Day21.cs +++ b/AOC2016/Day21.cs @@ -5,10 +5,6 @@ namespace AOC2016; /// public sealed class Day21() : Day(2016, 21, "Puzzle Name") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2016/Day22.cs b/AOC2016/Day22.cs index 691cb74..d1d5ebc 100644 --- a/AOC2016/Day22.cs +++ b/AOC2016/Day22.cs @@ -5,10 +5,6 @@ namespace AOC2016; /// public sealed class Day22() : Day(2016, 22, "Puzzle Name") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2016/Day23.cs b/AOC2016/Day23.cs index e91c707..3685d79 100644 --- a/AOC2016/Day23.cs +++ b/AOC2016/Day23.cs @@ -5,10 +5,6 @@ namespace AOC2016; /// public sealed class Day23() : Day(2016, 23, "Puzzle Name") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2016/Day24.cs b/AOC2016/Day24.cs index 1af97c3..2f55dbe 100644 --- a/AOC2016/Day24.cs +++ b/AOC2016/Day24.cs @@ -5,10 +5,6 @@ namespace AOC2016; /// public sealed class Day24() : Day(2016, 24, "Puzzle Name") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2016/Day25.cs b/AOC2016/Day25.cs index 4374cac..beb3121 100644 --- a/AOC2016/Day25.cs +++ b/AOC2016/Day25.cs @@ -5,10 +5,6 @@ namespace AOC2016; /// public sealed class Day25() : Day(2016, 25, "Puzzle Name") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2017/Day01.cs b/AOC2017/Day01.cs index 6a7c231..5c3e5f3 100644 --- a/AOC2017/Day01.cs +++ b/AOC2017/Day01.cs @@ -5,10 +5,6 @@ namespace AOC2017; /// public sealed class Day01() : Day(2017, 1, "Puzzle Name") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2017/Day02.cs b/AOC2017/Day02.cs index 1ef16f9..e787cc3 100644 --- a/AOC2017/Day02.cs +++ b/AOC2017/Day02.cs @@ -5,10 +5,6 @@ namespace AOC2017; /// public sealed class Day02() : Day(2017, 2, "Puzzle Name") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2017/Day03.cs b/AOC2017/Day03.cs index dcc7c2e..abe2f26 100644 --- a/AOC2017/Day03.cs +++ b/AOC2017/Day03.cs @@ -5,10 +5,6 @@ namespace AOC2017; /// public sealed class Day03() : Day(2017, 3, "Puzzle Name") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2017/Day04.cs b/AOC2017/Day04.cs index 0280269..00dd69d 100644 --- a/AOC2017/Day04.cs +++ b/AOC2017/Day04.cs @@ -5,10 +5,6 @@ namespace AOC2017; /// public sealed class Day04() : Day(2017, 4, "Puzzle Name") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2017/Day05.cs b/AOC2017/Day05.cs index 4575d34..d7914cd 100644 --- a/AOC2017/Day05.cs +++ b/AOC2017/Day05.cs @@ -5,10 +5,6 @@ namespace AOC2017; /// public sealed class Day05() : Day(2017, 5, "Puzzle Name") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2017/Day06.cs b/AOC2017/Day06.cs index 2343fc5..4292642 100644 --- a/AOC2017/Day06.cs +++ b/AOC2017/Day06.cs @@ -5,10 +5,6 @@ namespace AOC2017; /// public sealed class Day06() : Day(2017, 6, "Puzzle Name") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2017/Day07.cs b/AOC2017/Day07.cs index 78fd805..79b6697 100644 --- a/AOC2017/Day07.cs +++ b/AOC2017/Day07.cs @@ -5,10 +5,6 @@ namespace AOC2017; /// public sealed class Day07() : Day(2017, 7, "Puzzle Name") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2017/Day08.cs b/AOC2017/Day08.cs index a47dff5..e84e63a 100644 --- a/AOC2017/Day08.cs +++ b/AOC2017/Day08.cs @@ -5,10 +5,6 @@ namespace AOC2017; /// public sealed class Day08() : Day(2017, 8, "Puzzle Name") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2017/Day09.cs b/AOC2017/Day09.cs index 40fa67c..5e05841 100644 --- a/AOC2017/Day09.cs +++ b/AOC2017/Day09.cs @@ -5,10 +5,6 @@ namespace AOC2017; /// public sealed class Day09() : Day(2017, 9, "Puzzle Name") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2017/Day10.cs b/AOC2017/Day10.cs index c683b56..0c69006 100644 --- a/AOC2017/Day10.cs +++ b/AOC2017/Day10.cs @@ -5,10 +5,6 @@ namespace AOC2017; /// public sealed class Day10() : Day(2017, 10, "Puzzle Name") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2017/Day11.cs b/AOC2017/Day11.cs index 10f0ff5..80199da 100644 --- a/AOC2017/Day11.cs +++ b/AOC2017/Day11.cs @@ -5,10 +5,6 @@ namespace AOC2017; /// public sealed class Day11() : Day(2017, 11, "Puzzle Name") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2017/Day12.cs b/AOC2017/Day12.cs index 0f1fb21..a8a70e2 100644 --- a/AOC2017/Day12.cs +++ b/AOC2017/Day12.cs @@ -5,10 +5,6 @@ namespace AOC2017; /// public sealed class Day12() : Day(2017, 12, "Puzzle Name") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2017/Day13.cs b/AOC2017/Day13.cs index 462e20b..797d2f4 100644 --- a/AOC2017/Day13.cs +++ b/AOC2017/Day13.cs @@ -5,10 +5,6 @@ namespace AOC2017; /// public sealed class Day13() : Day(2017, 13, "Puzzle Name") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2017/Day14.cs b/AOC2017/Day14.cs index 07b021f..df2fc7a 100644 --- a/AOC2017/Day14.cs +++ b/AOC2017/Day14.cs @@ -5,10 +5,6 @@ namespace AOC2017; /// public sealed class Day14() : Day(2017, 14, "Puzzle Name") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2017/Day15.cs b/AOC2017/Day15.cs index bfb9019..1cfd1e9 100644 --- a/AOC2017/Day15.cs +++ b/AOC2017/Day15.cs @@ -5,10 +5,6 @@ namespace AOC2017; /// public sealed class Day15() : Day(2017, 15, "Puzzle Name") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2017/Day16.cs b/AOC2017/Day16.cs index cb23b9b..d642d3b 100644 --- a/AOC2017/Day16.cs +++ b/AOC2017/Day16.cs @@ -5,10 +5,6 @@ namespace AOC2017; /// public sealed class Day16() : Day(2017, 16, "Puzzle Name") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2017/Day17.cs b/AOC2017/Day17.cs index 9354c27..979b170 100644 --- a/AOC2017/Day17.cs +++ b/AOC2017/Day17.cs @@ -5,10 +5,6 @@ namespace AOC2017; /// public sealed class Day17() : Day(2017, 17, "Puzzle Name") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2017/Day18.cs b/AOC2017/Day18.cs index 2c500fd..2b5b4a0 100644 --- a/AOC2017/Day18.cs +++ b/AOC2017/Day18.cs @@ -5,10 +5,6 @@ namespace AOC2017; /// public sealed class Day18() : Day(2017, 18, "Puzzle Name") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2017/Day19.cs b/AOC2017/Day19.cs index 7b54941..3fef34f 100644 --- a/AOC2017/Day19.cs +++ b/AOC2017/Day19.cs @@ -5,10 +5,6 @@ namespace AOC2017; /// public sealed class Day19() : Day(2017, 19, "Puzzle Name") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2017/Day20.cs b/AOC2017/Day20.cs index 96bbae5..8cf9184 100644 --- a/AOC2017/Day20.cs +++ b/AOC2017/Day20.cs @@ -5,10 +5,6 @@ namespace AOC2017; /// public sealed class Day20() : Day(2017, 20, "Puzzle Name") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2017/Day21.cs b/AOC2017/Day21.cs index 0b1c6bc..27ef463 100644 --- a/AOC2017/Day21.cs +++ b/AOC2017/Day21.cs @@ -5,10 +5,6 @@ namespace AOC2017; /// public sealed class Day21() : Day(2017, 21, "Puzzle Name") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2017/Day22.cs b/AOC2017/Day22.cs index 975dfb8..6c8b020 100644 --- a/AOC2017/Day22.cs +++ b/AOC2017/Day22.cs @@ -5,10 +5,6 @@ namespace AOC2017; /// public sealed class Day22() : Day(2017, 22, "Puzzle Name") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2017/Day23.cs b/AOC2017/Day23.cs index c127e46..432645d 100644 --- a/AOC2017/Day23.cs +++ b/AOC2017/Day23.cs @@ -5,10 +5,6 @@ namespace AOC2017; /// public sealed class Day23() : Day(2017, 23, "Puzzle Name") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2017/Day24.cs b/AOC2017/Day24.cs index a31dada..eeec026 100644 --- a/AOC2017/Day24.cs +++ b/AOC2017/Day24.cs @@ -5,11 +5,7 @@ namespace AOC2017; /// public sealed class Day24() : Day(2017, 24, "Puzzle Name") { - public override void ProcessInput() - { - } - - public override object Part1() => ""; + public override object Part1() => ""; public override object Part2() => ""; } diff --git a/AOC2017/Day25.cs b/AOC2017/Day25.cs index b7c0d48..3818c07 100644 --- a/AOC2017/Day25.cs +++ b/AOC2017/Day25.cs @@ -5,10 +5,6 @@ namespace AOC2017; /// public sealed class Day25() : Day(2017, 25, "Puzzle Name") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2018/Day01.cs b/AOC2018/Day01.cs index 5a53abe..95f1391 100644 --- a/AOC2018/Day01.cs +++ b/AOC2018/Day01.cs @@ -5,10 +5,6 @@ namespace AOC2018; /// public sealed class Day01() : Day(2018, 1, "Chronal Calibration") { - public override void ProcessInput() - { - } - public override object Part1() => Input.Select(int.Parse).Sum(); public override object Part2() diff --git a/AOC2018/Day02.cs b/AOC2018/Day02.cs index b160ff5..171533e 100644 --- a/AOC2018/Day02.cs +++ b/AOC2018/Day02.cs @@ -5,10 +5,6 @@ namespace AOC2018; /// public sealed class Day02() : Day(2018, 2, "Inventory Management System") { - public override void ProcessInput() - { - } - private static bool HasNChars(string line, int count) { for (var i = 'a'; i <= 'z'; i++) @@ -31,4 +27,4 @@ public sealed class Day02() : Day(2018, 2, "Inventory Management System") throw new("Correct IDs not found"); } -} \ No newline at end of file +} diff --git a/AOC2018/Day04.cs b/AOC2018/Day04.cs index 457a87d..0dc6e8e 100644 --- a/AOC2018/Day04.cs +++ b/AOC2018/Day04.cs @@ -5,10 +5,6 @@ namespace AOC2018; /// public sealed class Day04() : Day(2018, 4, "Puzzle Name") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2018/Day05.cs b/AOC2018/Day05.cs index e246b69..a28afdf 100644 --- a/AOC2018/Day05.cs +++ b/AOC2018/Day05.cs @@ -5,10 +5,6 @@ namespace AOC2018; /// public sealed class Day05() : Day(2018, 5, "Puzzle Name") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2018/Day06.cs b/AOC2018/Day06.cs index 51c1c4a..91cc9ed 100644 --- a/AOC2018/Day06.cs +++ b/AOC2018/Day06.cs @@ -5,11 +5,7 @@ namespace AOC2018; /// public sealed class Day06() : Day(2018, 6, "Puzzle Name") { - public override void ProcessInput() - { - } - - public override object Part1() => ""; + public override object Part1() => ""; public override object Part2() => ""; } diff --git a/AOC2018/Day07.cs b/AOC2018/Day07.cs index 3b7962d..2769d82 100644 --- a/AOC2018/Day07.cs +++ b/AOC2018/Day07.cs @@ -5,10 +5,6 @@ namespace AOC2018; /// public sealed class Day07() : Day(2018, 7, "Puzzle Name") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2018/Day08.cs b/AOC2018/Day08.cs index 4e02751..56160ea 100644 --- a/AOC2018/Day08.cs +++ b/AOC2018/Day08.cs @@ -5,10 +5,6 @@ namespace AOC2018; /// public sealed class Day08() : Day(2018, 8, "Puzzle Name") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2018/Day09.cs b/AOC2018/Day09.cs index e7fac5a..03a41a6 100644 --- a/AOC2018/Day09.cs +++ b/AOC2018/Day09.cs @@ -5,10 +5,6 @@ namespace AOC2018; /// public sealed class Day09() : Day(2018, 9, "Puzzle Name") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2018/Day10.cs b/AOC2018/Day10.cs index 44d3cfe..c2f6ed0 100644 --- a/AOC2018/Day10.cs +++ b/AOC2018/Day10.cs @@ -5,10 +5,6 @@ namespace AOC2018; /// public sealed class Day10() : Day(2018, 10, "Puzzle Name") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2018/Day11.cs b/AOC2018/Day11.cs index f120efb..1c3573f 100644 --- a/AOC2018/Day11.cs +++ b/AOC2018/Day11.cs @@ -5,11 +5,7 @@ namespace AOC2018; /// public sealed class Day11() : Day(2018, 11, "Puzzle Name") { - public override void ProcessInput() - { - } - - public override object Part1() => ""; + public override object Part1() => ""; public override object Part2() => ""; } diff --git a/AOC2018/Day12.cs b/AOC2018/Day12.cs index 4da985b..a015ff6 100644 --- a/AOC2018/Day12.cs +++ b/AOC2018/Day12.cs @@ -5,10 +5,6 @@ namespace AOC2018; /// public sealed class Day12() : Day(2018, 12, "Puzzle Name") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2018/Day13.cs b/AOC2018/Day13.cs index 32c2290..7cb0cf5 100644 --- a/AOC2018/Day13.cs +++ b/AOC2018/Day13.cs @@ -5,10 +5,6 @@ namespace AOC2018; /// public sealed class Day13() : Day(2018, 13, "Puzzle Name") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2018/Day14.cs b/AOC2018/Day14.cs index 193f3cd..abc8324 100644 --- a/AOC2018/Day14.cs +++ b/AOC2018/Day14.cs @@ -5,10 +5,6 @@ namespace AOC2018; /// public sealed class Day14() : Day(2018, 14, "Puzzle Name") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2018/Day15.cs b/AOC2018/Day15.cs index fcfec09..af36288 100644 --- a/AOC2018/Day15.cs +++ b/AOC2018/Day15.cs @@ -5,10 +5,6 @@ namespace AOC2018; /// public sealed class Day15() : Day(2018, 15, "Puzzle Name") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2018/Day16.cs b/AOC2018/Day16.cs index 4a9c425..7747a08 100644 --- a/AOC2018/Day16.cs +++ b/AOC2018/Day16.cs @@ -5,10 +5,6 @@ namespace AOC2018; /// public sealed class Day16() : Day(2018, 16, "Puzzle Name") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2018/Day17.cs b/AOC2018/Day17.cs index 4b9238e..ab8ea05 100644 --- a/AOC2018/Day17.cs +++ b/AOC2018/Day17.cs @@ -5,10 +5,6 @@ namespace AOC2018; /// public sealed class Day17() : Day(2018, 17, "Puzzle Name") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2018/Day18.cs b/AOC2018/Day18.cs index d0bdcc4..cc5881b 100644 --- a/AOC2018/Day18.cs +++ b/AOC2018/Day18.cs @@ -5,10 +5,6 @@ namespace AOC2018; /// public sealed class Day18() : Day(2018, 18, "Puzzle Name") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2018/Day19.cs b/AOC2018/Day19.cs index a48c2f1..49b1801 100644 --- a/AOC2018/Day19.cs +++ b/AOC2018/Day19.cs @@ -5,10 +5,6 @@ namespace AOC2018; /// public sealed class Day19() : Day(2018, 19, "Puzzle Name") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2018/Day20.cs b/AOC2018/Day20.cs index 7372564..187c368 100644 --- a/AOC2018/Day20.cs +++ b/AOC2018/Day20.cs @@ -5,10 +5,6 @@ namespace AOC2018; /// public sealed class Day20() : Day(2018, 20, "Puzzle Name") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2018/Day21.cs b/AOC2018/Day21.cs index aa411e9..474bc96 100644 --- a/AOC2018/Day21.cs +++ b/AOC2018/Day21.cs @@ -5,11 +5,7 @@ namespace AOC2018; /// public sealed class Day21() : Day(2018, 21, "Puzzle Name") { - public override void ProcessInput() - { - } - - public override object Part1() => ""; + public override object Part1() => ""; public override object Part2() => ""; } diff --git a/AOC2018/Day22.cs b/AOC2018/Day22.cs index 74a103d..88a2979 100644 --- a/AOC2018/Day22.cs +++ b/AOC2018/Day22.cs @@ -5,10 +5,6 @@ namespace AOC2018; /// public sealed class Day22() : Day(2018, 22, "Puzzle Name") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2018/Day23.cs b/AOC2018/Day23.cs index 8652d67..37f9f54 100644 --- a/AOC2018/Day23.cs +++ b/AOC2018/Day23.cs @@ -5,10 +5,6 @@ namespace AOC2018; /// public sealed class Day23() : Day(2018, 23, "Puzzle Name") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2018/Day24.cs b/AOC2018/Day24.cs index 5ae89ee..d89f1e9 100644 --- a/AOC2018/Day24.cs +++ b/AOC2018/Day24.cs @@ -5,10 +5,6 @@ namespace AOC2018; /// public sealed class Day24() : Day(2018, 24, "Puzzle Name") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2018/Day25.cs b/AOC2018/Day25.cs index db2e25f..b31048c 100644 --- a/AOC2018/Day25.cs +++ b/AOC2018/Day25.cs @@ -5,10 +5,6 @@ namespace AOC2018; /// public sealed class Day25() : Day(2018, 25, "Puzzle Name") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2019/Day18.cs b/AOC2019/Day18.cs index e65c52c..4973bfe 100644 --- a/AOC2019/Day18.cs +++ b/AOC2019/Day18.cs @@ -2,10 +2,6 @@ namespace AOC2019; public sealed class Day18() : Day(2019, 18, "Many-Worlds Interpretation") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2019/Day20.cs b/AOC2019/Day20.cs index f332dd8..a3e0801 100644 --- a/AOC2019/Day20.cs +++ b/AOC2019/Day20.cs @@ -2,10 +2,6 @@ namespace AOC2019; public sealed class Day20() : Day(2019, 20, "Donut Maze") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2019/Day21.cs b/AOC2019/Day21.cs index eb3f96a..dd939f4 100644 --- a/AOC2019/Day21.cs +++ b/AOC2019/Day21.cs @@ -1,22 +1,8 @@ namespace AOC2019; -public sealed class Day21 : Day +public sealed class Day21() : Day(2019, 21, "Springdroid Adventure") { - private readonly IntCodeVM _vm; - - public Day21() : base(2019, 21, "Springdroid Adventure") => - _vm = new(Input.First()); - - public override void ProcessInput() - { - } - - public override object Part1() - { - _vm.Reset(); - var halt = _vm.Run(); - return ""; - } + public override object Part1() => ""; public override object Part2() => ""; } diff --git a/AOC2019/Day22.cs b/AOC2019/Day22.cs index 0afc7d8..4a62d15 100644 --- a/AOC2019/Day22.cs +++ b/AOC2019/Day22.cs @@ -2,10 +2,6 @@ namespace AOC2019; public sealed class Day22() : Day(2019, 22, "Slam Shuffle") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2019/Day23.cs b/AOC2019/Day23.cs index 9345aa6..b06344c 100644 --- a/AOC2019/Day23.cs +++ b/AOC2019/Day23.cs @@ -2,10 +2,6 @@ namespace AOC2019; public sealed class Day23() : Day(2019, 23, "Category Six") { - public override void ProcessInput() - { - } - public override object Part1() { var vms = Enumerable.Range(0, 50) diff --git a/AOC2019/Day24.cs b/AOC2019/Day24.cs index bf4e405..9d7a9ef 100644 --- a/AOC2019/Day24.cs +++ b/AOC2019/Day24.cs @@ -2,10 +2,6 @@ namespace AOC2019; public sealed class Day24() : Day(2019, 24, "Planet of Discord") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2019/Day25.cs b/AOC2019/Day25.cs index 36a4be1..35eeb59 100644 --- a/AOC2019/Day25.cs +++ b/AOC2019/Day25.cs @@ -2,10 +2,6 @@ namespace AOC2019; public sealed class Day25() : Day(2019, 25, "Cryostasis") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2020/Day11.cs b/AOC2020/Day11.cs index bc629e1..5353c98 100644 --- a/AOC2020/Day11.cs +++ b/AOC2020/Day11.cs @@ -5,10 +5,6 @@ namespace AOC2020; /// public sealed class Day11() : Day(2020, 11, "Seating System") { - public override void ProcessInput() - { - } - public override object Part1() { var prev = new LifeGame(Input); @@ -73,13 +69,13 @@ public sealed class Day11() : Day(2020, 11, "Seating System") { var next = new LifeGame { _h = _h, _w = _w, Grid = Grid.Select(s => s.ToArray()).ToArray() }; for (var y = 0; y < _h; y++) - for (var x = 0; x < _w; x++) - next.Grid[y][x] = Grid[y][x] switch - { - 'L' when CountAdjacent(y, x) == 0 => '#', - '#' when CountAdjacent(y, x) >= 4 => 'L', - _ => Grid[y][x] - }; + for (var x = 0; x < _w; x++) + next.Grid[y][x] = Grid[y][x] switch + { + 'L' when CountAdjacent(y, x) == 0 => '#', + '#' when CountAdjacent(y, x) >= 4 => 'L', + _ => Grid[y][x] + }; // next.PrintBoard(); return next; @@ -91,8 +87,7 @@ public sealed class Day11() : Day(2020, 11, "Seating System") private int CountAdjacent(int y, int x) => new[] { - At(y - 1, x - 1), At(y - 1, x + 0), At(y - 1, x + 1), - At(y + 0, x - 1), At(y + 0, x + 1), + At(y - 1, x - 1), At(y - 1, x + 0), At(y - 1, x + 1), At(y + 0, x - 1), At(y + 0, x + 1), At(y + 1, x - 1), At(y + 1, x + 0), At(y + 1, x + 1) }.Count(c => c == '#'); @@ -100,13 +95,13 @@ public sealed class Day11() : Day(2020, 11, "Seating System") { var next = new LifeGame { _h = _h, _w = _w, Grid = Grid.Select(s => s.ToArray()).ToArray() }; for (var y = 0; y < _h; y++) - for (var x = 0; x < _w; x++) - next.Grid[y][x] = Grid[y][x] switch - { - 'L' when CanSee(y, x) == 0 => '#', - '#' when CanSee(y, x) >= 5 => 'L', - _ => Grid[y][x] - }; + for (var x = 0; x < _w; x++) + next.Grid[y][x] = Grid[y][x] switch + { + 'L' when CanSee(y, x) == 0 => '#', + '#' when CanSee(y, x) >= 5 => 'L', + _ => Grid[y][x] + }; // next.PrintBoard(); return next; @@ -115,9 +110,8 @@ public sealed class Day11() : Day(2020, 11, "Seating System") private int CanSee(int y, int x) => new[] { - TraceRay(y, x, -1, -1), TraceRay(y, x, -1, +0), TraceRay(y, x, -1, +1), - TraceRay(y, x, +0, -1), TraceRay(y, x, +0, +1), - TraceRay(y, x, +1, -1), TraceRay(y, x, +1, +0), TraceRay(y, x, +1, +1) + TraceRay(y, x, -1, -1), TraceRay(y, x, -1, +0), TraceRay(y, x, -1, +1), TraceRay(y, x, +0, -1), + TraceRay(y, x, +0, +1), TraceRay(y, x, +1, -1), TraceRay(y, x, +1, +0), TraceRay(y, x, +1, +1) }.Count(c => c == '#'); private char TraceRay(int y, int x, int dy, int dx) diff --git a/AOC2020/Day12.cs b/AOC2020/Day12.cs index 594584c..00dba2e 100644 --- a/AOC2020/Day12.cs +++ b/AOC2020/Day12.cs @@ -5,10 +5,6 @@ namespace AOC2020; /// public sealed class Day12() : Day(2020, 12, "Rain Risk") { - public override void ProcessInput() - { - } - private static void Swap(ref int x, ref int y) => (y, x) = (x, y); private (int x, int y, int sx, int sy) ProcessInstructions() diff --git a/AOC2020/Day14.cs b/AOC2020/Day14.cs index 18b9cce..4137023 100644 --- a/AOC2020/Day14.cs +++ b/AOC2020/Day14.cs @@ -5,10 +5,6 @@ namespace AOC2020; /// public sealed class Day14() : Day(2020, 14, "Docking Data") { - public override void ProcessInput() - { - } - private static readonly char[] SquareBrackets = ['[', ']']; private static readonly char[] BracketsAndEquals = [.. SquareBrackets, '=']; diff --git a/AOC2020/Day20.cs b/AOC2020/Day20.cs index 48615ad..c0c3bce 100644 --- a/AOC2020/Day20.cs +++ b/AOC2020/Day20.cs @@ -8,10 +8,6 @@ public sealed partial class Day20() : Day(2020, 20, "Jurassic Jigsaw") [GeneratedRegex("(?<=#.{77})#.{4}#{2}.{4}#{2}.{4}#{3}(?=.{77}#.{2}#.{2}#.{2}#.{2}#.{2}#)")] private static partial Regex MonsterRegex(); - public override void ProcessInput() - { - } - public override object Part1() { var puzzlePieces = ParsePiecesFromInput(Input.ToArray()); diff --git a/AOC2020/Day25.cs b/AOC2020/Day25.cs index 0dd9d62..bc07a76 100644 --- a/AOC2020/Day25.cs +++ b/AOC2020/Day25.cs @@ -5,10 +5,6 @@ namespace AOC2020; /// public sealed class Day25() : Day(2020, 25, "Combo Breaker") { - public override void ProcessInput() - { - } - private static long Transform(long subject, int loopSize) { var value = 1L; diff --git a/AOC2021/Day02.cs b/AOC2021/Day02.cs index 22e619a..ed00c91 100644 --- a/AOC2021/Day02.cs +++ b/AOC2021/Day02.cs @@ -5,10 +5,6 @@ namespace AOC2021; /// public sealed class Day02() : Day(2021, 2, "Dive!") { - public override void ProcessInput() - { - } - public override object Part1() { int horiz = 0, depth = 0; diff --git a/AOC2021/Day05.cs b/AOC2021/Day05.cs index d42b391..16f54a8 100644 --- a/AOC2021/Day05.cs +++ b/AOC2021/Day05.cs @@ -5,10 +5,6 @@ namespace AOC2021; /// public sealed partial class Day05() : Day(2021, 5, "Hydrothermal Venture") { - public override void ProcessInput() - { - } - private int Solve(bool diagonals = false) => Input .Select(s => NonDigits().Split(s).Select(int.Parse).ToList()) diff --git a/AOC2021/Day08.cs b/AOC2021/Day08.cs index 73f46b7..6dabeed 100644 --- a/AOC2021/Day08.cs +++ b/AOC2021/Day08.cs @@ -9,10 +9,6 @@ public sealed class Day08() : Day(2021, 8, "Seven Segment Search") "abcdefg".ToCharArray().Permute().Select(m => m.ToArray()).ToList(); private static readonly int[] SearchValues = { 2, 3, 4, 7 }; - public override void ProcessInput() - { - } - private static int MatchDigit(string lit) => lit switch { diff --git a/AOC2022/Day03.cs b/AOC2022/Day03.cs index e815383..d224cf4 100644 --- a/AOC2022/Day03.cs +++ b/AOC2022/Day03.cs @@ -5,10 +5,6 @@ namespace AOC2022; /// public sealed class Day03() : Day(2022, 3, "Rucksack Reorganization") { - public override void ProcessInput() - { - } - public override object Part1() => Input.Sum(rucksack => RankItem(rucksack.Chunk(rucksack.Length / 2).Aggregate>((a, b) => a.Intersect(b)).Single())); @@ -16,4 +12,4 @@ public sealed class Day03() : Day(2022, 3, "Rucksack Reorganization") Input.Chunk(3).Sum(group => RankItem(group.Aggregate>((a, b) => a.Intersect(b)).Single())); private static int RankItem(char item) => item - (char.IsUpper(item) ? '&' : '`'); -} \ No newline at end of file +} diff --git a/AOC2022/Day16.cs b/AOC2022/Day16.cs index e183182..6986299 100644 --- a/AOC2022/Day16.cs +++ b/AOC2022/Day16.cs @@ -5,10 +5,6 @@ namespace AOC2022; /// public sealed class Day16() : Day(2022, 16, "Proboscidea Volcanium") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2022/Day17.cs b/AOC2022/Day17.cs index 639903d..66a52eb 100644 --- a/AOC2022/Day17.cs +++ b/AOC2022/Day17.cs @@ -5,10 +5,6 @@ namespace AOC2022; /// public sealed class Day17() : Day(2022, 17, "Pyroclastic Flow") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2022/Day18.cs b/AOC2022/Day18.cs index a98abdd..eeb4ee6 100644 --- a/AOC2022/Day18.cs +++ b/AOC2022/Day18.cs @@ -5,10 +5,6 @@ namespace AOC2022; /// public sealed class Day18() : Day(2022, 18, "Boiling Boulders") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2022/Day19.cs b/AOC2022/Day19.cs index 2ef18e2..d2ef757 100644 --- a/AOC2022/Day19.cs +++ b/AOC2022/Day19.cs @@ -5,10 +5,6 @@ namespace AOC2022; /// public sealed class Day19() : Day(2022, 19, "Not Enough Minerals") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2022/Day20.cs b/AOC2022/Day20.cs index e044dd3..4a0a5a7 100644 --- a/AOC2022/Day20.cs +++ b/AOC2022/Day20.cs @@ -5,10 +5,6 @@ namespace AOC2022; /// public sealed class Day20() : Day(2022, 20, "Grove Positioning System") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2022/Day21.cs b/AOC2022/Day21.cs index ee11a0d..4d0ea4f 100644 --- a/AOC2022/Day21.cs +++ b/AOC2022/Day21.cs @@ -5,10 +5,6 @@ namespace AOC2022; /// public sealed class Day21() : Day(2022, 21, "Monkey Math") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2022/Day22.cs b/AOC2022/Day22.cs index 146d3b0..35558b3 100644 --- a/AOC2022/Day22.cs +++ b/AOC2022/Day22.cs @@ -5,10 +5,6 @@ namespace AOC2022; /// public sealed class Day22() : Day(2022, 22, "Monkey Map") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2022/Day23.cs b/AOC2022/Day23.cs index 7967620..99cc191 100644 --- a/AOC2022/Day23.cs +++ b/AOC2022/Day23.cs @@ -5,10 +5,6 @@ namespace AOC2022; /// public sealed class Day23() : Day(2022, 23, "Unstable Diffusion") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2022/Day24.cs b/AOC2022/Day24.cs index 8ac4765..69dc89b 100644 --- a/AOC2022/Day24.cs +++ b/AOC2022/Day24.cs @@ -5,10 +5,6 @@ namespace AOC2022; /// public sealed class Day24() : Day(2022, 24, "Blizzard Basin") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2022/Day25.cs b/AOC2022/Day25.cs index c40df07..5aab297 100644 --- a/AOC2022/Day25.cs +++ b/AOC2022/Day25.cs @@ -5,10 +5,6 @@ namespace AOC2022; /// public sealed class Day25() : Day(2022, 25, "Full of Hot Air") { - public override void ProcessInput() - { - } - public override object Part1() => ""; public override object Part2() => ""; diff --git a/AOC2023/Day01.cs b/AOC2023/Day01.cs index 3a8b8b8..f64d248 100644 --- a/AOC2023/Day01.cs +++ b/AOC2023/Day01.cs @@ -1,14 +1,13 @@ namespace AOC2023; +/// +/// Day 1 +/// public class Day01() : Day(2023, 1, "Trebuchet?!") { private static readonly List SingleDigits = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"]; - public override void ProcessInput() - { - } - public override object Part1() => Input.Sum(line => (line.First(char.IsAsciiDigit) - '0') * 10 + (line.Last(char.IsAsciiDigit) - '0')); diff --git a/AOC2023/Day02.cs b/AOC2023/Day02.cs index 2139fcd..d2e0ef8 100644 --- a/AOC2023/Day02.cs +++ b/AOC2023/Day02.cs @@ -1,14 +1,10 @@ namespace AOC2023; /// -/// Day 2: +/// Day 2 /// public sealed class Day02() : Day(2023, 2, "Cube Conundrum") { - public override void ProcessInput() - { - } - private static bool PossibleGame(string line) { var rounds = line.Split(": ", 2)[1]; diff --git a/AOC2023/Day03.cs b/AOC2023/Day03.cs index c19f8e8..9858adc 100644 --- a/AOC2023/Day03.cs +++ b/AOC2023/Day03.cs @@ -1,7 +1,7 @@ namespace AOC2023; /// -/// Day 3: +/// Day 3 /// public sealed class Day03() : Day(2023, 3, "Gear Ratios") { diff --git a/AOC2023/Day04.cs b/AOC2023/Day04.cs index 672d783..c21a8e2 100644 --- a/AOC2023/Day04.cs +++ b/AOC2023/Day04.cs @@ -1,7 +1,7 @@ namespace AOC2023; /// -/// Day 4: +/// Day 4 /// public sealed class Day04() : Day(2023, 4, "Scratchcards") { diff --git a/AOC2023/Day05.cs b/AOC2023/Day05.cs new file mode 100644 index 0000000..31aba10 --- /dev/null +++ b/AOC2023/Day05.cs @@ -0,0 +1,11 @@ +namespace AOC2023; + +/// +/// Day 5 +/// +public class Day05() : Day(2023, 5, "If you Give A Seed A Fertilizer") +{ + public override object Part1() => ""; + + public override object Part2() => ""; +} diff --git a/AOC2023/input2023/day05.in b/AOC2023/input2023/day05.in new file mode 100644 index 0000000..e3d4e99 --- /dev/null +++ b/AOC2023/input2023/day05.in @@ -0,0 +1,250 @@ +seeds: 28965817 302170009 1752849261 48290258 804904201 243492043 2150339939 385349830 1267802202 350474859 2566296746 17565716 3543571814 291402104 447111316 279196488 3227221259 47952959 1828835733 9607836 + +seed-to-soil map: +3680121696 1920754815 614845600 +1920754815 3846369604 448597692 +193356576 570761634 505124585 +2369352507 2535600415 31531965 +2400884472 2567132380 1279237224 +0 459278395 111483239 +698481161 97868205 361410190 +1059891351 0 15994868 +111483239 15994868 81873337 + +soil-to-fertilizer map: +1633669237 1273301814 72865265 +2398515176 2671190790 99210785 +2397916384 3018946373 598792 +4034325916 3061716397 20017393 +3298612516 3793795301 14249501 +4030007411 3051046904 2833129 +1906984482 224872691 14620134 +864506893 1590633724 149044542 +1029530319 442871336 36727018 +1921604616 770934113 68546178 +3560536321 3114405501 28822192 +1019762634 1263534129 9767685 +3852235341 3579014714 60339892 +2385228698 1577946038 12687686 +2234322470 239492825 150906228 +0 170310676 54562015 +3208946111 3808044802 89666405 +1209615399 839480291 424053838 +4032840540 4041982568 1485376 +2497725961 2174737461 293042810 +2002543511 1346167079 231778959 +3312862017 3475611771 103402943 +318739997 1739678266 354749094 +1013551435 3012735174 6211199 +4014277153 4160859076 15730258 +3589358513 3143227693 230682158 +1990150794 2467780271 12392717 +3051046904 3081733790 32671711 +3820040671 3761600631 32194670 +148429321 0 170310676 +673489091 2480172988 191017802 +1066257337 627576051 143358062 +2790768771 2770401575 242333599 +3091554979 4043467944 117391132 +3416264960 3897711207 144271361 +3912575233 3373909851 101701920 +4072291714 3639354606 104297620 +3083718615 3053880033 7836364 +54562015 3019545165 13557205 +1759006785 479598354 147977697 +68119220 2094427360 80310101 +1706534502 390399053 52472283 +4054343309 3743652226 17948405 + +fertilizer-to-water map: +0 1095885172 129797665 +2661548513 1044284418 17872363 +3282164642 3678907615 214830258 +1440687421 2218635146 325889720 +3496994900 4208791298 25912548 +3253828209 4136945159 5561683 +1797056017 864689597 109403664 +3259389892 4186016548 22774750 +2578517508 1225682837 83031005 +3193832718 3618912124 59995491 +3695649169 3214450646 211194594 +820325042 974093261 70191157 +1284591017 1074888739 20996433 +2929761569 3893737873 85668135 +1305587450 2605461705 73959171 +2168339930 1062156781 12731958 +2465234843 2135490203 52666067 +3522907448 4108091872 882860 +3523790308 4255675252 39292044 +2517900910 1308713842 60616598 +3563082352 3176039879 38410767 +3015429704 3979406008 128685864 +1913427402 2131043562 4446641 +2235159285 1419841841 190190495 +3673886186 4108974732 21762983 +891504291 1610032336 393086726 +3927815169 3425645240 193266884 +4121082053 3002154636 173885243 +2084864581 2004107154 83475349 +1917874043 557612753 69524983 +890516199 2003119062 988092 +766355924 2551492587 53969118 +1379546621 0 61140800 +3187625274 4130737715 6207444 +528804063 627137736 237551861 +1987399026 230411125 97465555 +1906459681 2544524866 6967721 +2184647884 1369330440 50511401 +2425349780 2091158499 39885063 +2181071888 2087582503 3575996 +3144115568 4142506842 43509706 +1766577141 2188156270 30478876 +359533738 61140800 169270325 +129797665 327876680 229736073 +3906843763 4234703846 20971406 +3601493119 2929761569 72393067 + +water-to-light map: +2375927917 1595026882 126334140 +1307603095 818620477 43777869 +2050676589 1855896418 112224406 +3618302244 2909504698 119958941 +3078570200 3088215627 6211083 +3084781283 3094426710 141266337 +524666822 53020621 149058240 +673725062 862398346 147671362 +2364320682 2577001713 11607235 +1941578413 1584221500 10805382 +2162900995 2536766467 40235246 +162015400 237365123 4480592 +821396424 241845715 141336168 +166495992 1138498800 212882164 +4277433486 4220367555 17533810 +3226047620 2229635217 307131250 +2909428734 1968120824 34606070 +1885573816 3954749082 56004597 +2711875933 2868267590 41237108 +0 726306378 92314099 +2944034804 1721361022 134535396 +1584221500 3392008740 301352316 +962732592 34415039 18605582 +2235705153 2101019688 128615529 +4252936467 4237901365 24497019 +92314099 202078861 35286262 +981338174 400041457 326264921 +379378156 1010069708 128429092 +3591930858 3693361056 26371386 +3785017329 3719732442 235016640 +2502262057 4010753679 209613876 +3533178870 3029463639 58751988 +3738261185 2821511446 46756144 +4020033969 2806534555 14976891 +1952383795 2002726894 98292794 +127600361 0 34415039 +2753113041 3235693047 156315693 +507807248 383181883 16859574 +2203136241 4262398384 32568912 +4035010860 2588608948 217925607 + +light-to-temperature map: +2137189745 1335050925 100355790 +639139367 2440321747 987829 +1663612748 1778059435 153830272 +1122754252 1950103191 82536600 +1929621334 1199531530 135519395 +1286703174 2032639791 207137687 +245313533 981575774 217955756 +2597564380 2824691125 293777778 +895004176 331442633 25226735 +1493840861 236388681 616173 +1494457034 764560381 107637728 +1817443020 1435406715 112178314 +1205290852 356669368 33552643 +474799702 0 164339665 +2341054397 2260378974 100255179 +1043066658 2360634153 79687594 +125852143 390222011 119461390 +3924383937 3130691909 13614218 +2467721984 3747288823 76649669 +2065140729 164339665 72049016 +920230911 1673437172 104622263 +640127196 509683401 254876980 +1024853174 1931889707 18213484 +2331983314 2251307891 9071083 +2237545535 237004854 94437779 +3912160931 3118468903 12223006 +1238843495 933716095 47859679 +3326002417 3517222025 230066798 +3556069215 3144306127 241363224 +3797432439 4180238804 114728492 +1602094762 872198109 61517986 +2544371653 4127046077 53192727 +2891342158 3823938492 303107585 +463269289 2239777478 11530413 +3194449743 3385669351 131552674 +3937998155 2467721984 356969141 +0 1547585029 125852143 + +temperature-to-humidity map: +2687600833 2313887435 187105587 +3281196981 2291603041 22284394 +1771250828 1899269239 314167725 +784031720 478456148 306959384 +2605226464 1771250828 58348072 +2085418553 3793564740 111907603 +1090991104 785415532 575136195 +3437652344 1829598900 69670339 +2874706420 2500993022 389039942 +3303481375 3905472343 134170969 +305575572 0 478456148 +3263746362 2890032964 17450619 +2527060387 2213436964 78166077 +2428623843 3695128196 98436544 +2663574536 4270940999 24026297 +3507322683 2907483583 787644613 +2197326156 4039643312 231297687 +0 1360551727 305575572 + +humidity-to-location map: +1919184105 1156349110 51114849 +4031284281 3411510751 25609498 +0 171183359 79004094 +1253227229 2072782209 122019778 +4056893779 3437120249 136289693 +3402931364 4156827458 101778985 +84557792 1207463959 134801591 +635909965 1371746366 266495395 +4029464617 4127764171 1819664 +4193183472 2857352625 101783824 +1375247007 2200355685 41445634 +1996492203 0 171183359 +3601595563 3699895117 427869054 +2218993186 1133540977 22808133 +3217192942 2959136449 140385316 +2987922009 4258606443 9236491 +2628749093 2543337773 86365212 +2167675562 369831582 51317624 +3504710349 2446452559 96885214 +902405360 421149206 108869392 +3357578258 2811999519 45353106 +1196458443 1638241761 56768786 +1178674352 693035436 17784091 +1970298954 530018598 26193249 +2868723842 3099521765 91954544 +1522874936 895259169 18612073 +2841599480 4267842934 27124362 +1880563756 1695010547 38620349 +1011274752 913871242 137918784 +219359383 556211847 136823589 +1785350971 250187453 95212785 +2960678386 4129583835 27243623 +540622614 1977494858 95287351 +356182972 710819527 184439642 +1498443592 345400238 24431344 +1416692641 1051790026 81750951 +1541487009 1733630896 243863962 +79004094 2194801987 5553698 +1149193536 1342265550 29480816 +2997158500 3191476309 220034442 +2715114305 3573409942 126485175 +2446452559 2629702985 182296534 diff --git a/AOC2023/input2023/test05.in b/AOC2023/input2023/test05.in new file mode 100644 index 0000000..f756727 --- /dev/null +++ b/AOC2023/input2023/test05.in @@ -0,0 +1,33 @@ +seeds: 79 14 55 13 + +seed-to-soil map: +50 98 2 +52 50 48 + +soil-to-fertilizer map: +0 15 37 +37 52 2 +39 0 15 + +fertilizer-to-water map: +49 53 8 +0 11 42 +42 0 7 +57 7 4 + +water-to-light map: +88 18 7 +18 25 70 + +light-to-temperature map: +45 77 23 +81 45 19 +68 64 13 + +temperature-to-humidity map: +0 69 1 +1 0 69 + +humidity-to-location map: +60 56 37 +56 93 4 diff --git a/DayXX.cs.txt b/DayXX.cs.txt index fc3a7e7..cc0f03f 100644 --- a/DayXX.cs.txt +++ b/DayXX.cs.txt @@ -1,21 +1,11 @@ namespace AOCYYYY; /// -/// Day Q: +/// Day Q /// public sealed class DayXX() : Day(YYYY, Q, "Puzzle Name") { - public override void ProcessInput() - { - } + public override object Part1() => ""; - public override object Part1() - { - return ""; - } - - public override object Part2() - { - return ""; - } + public override object Part2() => ""; }