From 754cf5f4b9d5371bc6f07b7b2a4ca8d80705ea13 Mon Sep 17 00:00:00 2001 From: cyberdick Date: Sat, 3 Dec 2022 16:21:57 +0530 Subject: [PATCH] setup change, who knew puzzles would be part 1 & 2 all the time --- .editorconfig | 10 + AOC2022/AOC2022.csproj | 10 + AOC2022/AOC2022.csproj.user | 9 + AOCDayOne/input.txt => AOC2022/Inputs/1.txt | 2 +- AOC2022/Inputs/2.txt | 2500 +++++++++++++++++++ AOC2022/Inputs/3.txt | 300 +++ AOC2022/Program.cs | 84 + AOC2022/Properties/launchSettings.json | 14 + AOC2022/Puzzles/Day1.cs | 21 + AOC2022/Puzzles/Day2.cs | 21 + AOC2022/Puzzles/Day3.cs | 20 + AOC2022/Puzzles/IPuzzle.cs | 14 + AdventOfCode.sln | 13 +- 13 files changed, 3016 insertions(+), 2 deletions(-) create mode 100644 .editorconfig create mode 100644 AOC2022/AOC2022.csproj create mode 100644 AOC2022/AOC2022.csproj.user rename AOCDayOne/input.txt => AOC2022/Inputs/1.txt (99%) create mode 100644 AOC2022/Inputs/2.txt create mode 100644 AOC2022/Inputs/3.txt create mode 100644 AOC2022/Program.cs create mode 100644 AOC2022/Properties/launchSettings.json create mode 100644 AOC2022/Puzzles/Day1.cs create mode 100644 AOC2022/Puzzles/Day2.cs create mode 100644 AOC2022/Puzzles/Day3.cs create mode 100644 AOC2022/Puzzles/IPuzzle.cs diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..a6d972d --- /dev/null +++ b/.editorconfig @@ -0,0 +1,10 @@ +# This file is the top-most EditorConfig file +root = true + +# All Files +[*] +charset = utf-8 +indent_style = tab +indent_size = 2 +tab_width = 2 +end_of_line = crlf \ No newline at end of file diff --git a/AOC2022/AOC2022.csproj b/AOC2022/AOC2022.csproj new file mode 100644 index 0000000..f02677b --- /dev/null +++ b/AOC2022/AOC2022.csproj @@ -0,0 +1,10 @@ + + + + Exe + net7.0 + enable + enable + + + diff --git a/AOC2022/AOC2022.csproj.user b/AOC2022/AOC2022.csproj.user new file mode 100644 index 0000000..36d9b15 --- /dev/null +++ b/AOC2022/AOC2022.csproj.user @@ -0,0 +1,9 @@ + + + + ProjectDebugger + + + WithoutParams + + \ No newline at end of file diff --git a/AOCDayOne/input.txt b/AOC2022/Inputs/1.txt similarity index 99% rename from AOCDayOne/input.txt rename to AOC2022/Inputs/1.txt index f1ba47f..e8ac86c 100644 --- a/AOCDayOne/input.txt +++ b/AOC2022/Inputs/1.txt @@ -2247,4 +2247,4 @@ 5785 2912 5664 -2775 \ No newline at end of file +2775 diff --git a/AOC2022/Inputs/2.txt b/AOC2022/Inputs/2.txt new file mode 100644 index 0000000..6ec569e --- /dev/null +++ b/AOC2022/Inputs/2.txt @@ -0,0 +1,2500 @@ +B Z +A Z +B Z +C Z +C Z +B X +A X +C X +A Z +C Y +C X +C Y +C Y +A X +A Z +A Z +A X +B Z +B X +A Z +A X +C Y +A X +B Z +B Z +A X +C Z +A Z +A X +B Z +A Z +A Y +C Y +A Z +C Z +A Z +C Y +C Z +C Z +A Z +A X +A X +B X +A Z +B Z +A X +A Z +A Z +A X +A X +C Y +A Z +B X +C Y +A X +B Y +A Z +A X +A Z +A X +C Z +A Z +A Y +A X +C Y +A X +B X +A X +A Z +C Y +A Z +A X +C X +C Z +C Z +A Z +A X +A Z +C X +C Z +B Z +A Z +C Y +C Z +B X +A X +A Z +A X +A X +C Y +A Z +C Z +B X +A X +A X +A Z +A Y +A X +C X +A Z +B X +C Y +A X +A X +A X +C X +B Z +B Z +A Z +A X +A Z +C Z +C X +C Y +B X +C Z +A Z +C X +A Z +A X +A X +A X +A X +A Z +B X +A X +B X +C Z +A Z +A Z +A X +A X +A X +B X +A Z +A X +A Z +A X +B Z +A Z +A X +B Z +A Z +A Z +C Y +B Z +A Z +B Z +A Z +A X +C X +A X +C Y +C X +A X +A X +C Y +A Z +A X +B Z +A Z +A Z +B X +B Z +A X +A Z +A X +A X +A Z +A X +A Z +A Z +C X +A Z +A X +C Y +A Z +A Z +A X +A X +A X +A X +B Z +B X +A Z +A X +A Z +C Y +B Y +C Y +B X +A Z +A Z +A Z +C Y +A Z +A X +B Z +C X +A X +C Z +C X +C Y +A Z +A X +A Z +C Z +A Z +A Z +A Y +C Z +A X +A X +B Z +A Z +C Z +A Z +A X +A Z +A Z +A Z +A Z +A Z +A Z +A Z +A Z +C X +A X +A X +A X +B Y +B X +A X +A Z +A Z +A X +A Z +A X +A X +A Z +B X +A Z +C Z +A Z +C Z +A Z +A Z +C Z +A X +C Z +A X +C X +A Z +A Z +B Z +A Y +B Z +A X +B Z +A Z +A X +A Z +A Z +A X +A Z +B Z +C X +A Z +A X +B Z +C Y +B Z +C X +A Z +A Z +C X +B X +C Z +A Z +A X +A Z +C X +A Z +C Z +C Z +B Z +B Z +A Z +C X +A X +B Y +A Y +A Z +C X +B X +A Z +A Z +B Y +A Z +A Z +C Z +A Z +A X +A Z +B X +C Z +B X +A Z +B Z +C Y +A X +A X +A Z +A Z +A Z +C Y +A X +A Z +A Z +A X +B Z +A Z +C X +C Z +A Z +A X +B Z +A X +C Y +A X +A Z +A Y +C Z +A Y +A Z +C X +C Y +A Z +C Y +A Z +A X +C Y +A Z +A X +A X +B Z +A X +C X +A X +C X +A X +A Z +A X +A Z +A Z +A X +C X +C Z +A Z +C Z +C X +A Z +C Y +A X +A Z +A Z +C Y +A X +B X +C Y +B Z +C Y +A X +A X +C Z +A X +A Z +A X +A X +C X +A X +A Z +B X +C Z +A Y +B Y +A Z +A Z +A Z +A Z +B Y +A Y +A Z +B Z +A Z +A X +C Z +B Y +C Y +A X +A Z +C Z +B Z +A Z +A Z +A Y +C Z +A Z +A Z +C Z +C Z +C Z +A X +B Y +C X +A X +A Z +A Z +B Z +A Y +A X +A Z +B X +A X +A X +A Z +A Y +A Z +A X +B X +A Z +C X +A Z +A X +C X +B X +B Y +B X +A Z +A Z +A Z +A X +B X +A X +B Z +A Y +B Z +C Z +A X +C Z +C X +A Z +C Y +C Y +A Z +A X +A X +A X +B X +A Z +A Y +C Y +B X +A X +A X +A X +C Y +A Z +A Y +A X +C Z +A Z +A Z +A Z +C Z +A X +A Z +C Z +B X +C Y +A Z +B Z +B Z +C Z +C Z +A X +A Z +A Z +B X +B X +A Z +A Z +A Y +C Z +A Z +A X +C Z +A Z +C Z +C Z +A Z +A Z +B Z +A X +B Y +A Z +A X +C Z +A X +B X +A Z +C Y +A Z +C X +C Y +A X +C X +C X +A Z +C Z +C Y +A Z +A Z +A X +A X +C Z +A Y +A Z +A X +B Z +A X +A Z +A Z +A X +B Z +A X +A Z +C X +A Z +A Z +C X +A Z +A X +A Z +A X +B Z +A Z +A Z +C Y +C Y +C Z +C Z +C Y +A X +A X +A X +A Z +A Z +C Y +A Z +C Z +A Z +C Z +B Z +B X +A Y +C Y +A X +A Z +A X +A X +A Z +C Z +C Y +C Y +A Y +A X +A Z +A X +C Z +A X +A Z +A Z +C Y +A X +A Z +A Z +A X +B Y +A Z +A Z +A Z +A Z +C Y +A Z +A X +A X +A Z +A Z +C Y +A Z +A Z +B Z +A Z +A X +A X +A Y +C Z +C Z +A Z +B Z +A Z +A Z +A X +A X +C Z +A Z +A X +A X +A Z +A Z +B Y +A Y +C Y +A X +A Z +C Z +C Y +A Z +C Y +A X +A X +A X +A Z +C Y +C Y +A Z +B X +C Y +A Z +A X +A Z +A Y +C Y +C Z +B Z +A Z +C Y +A X +C Z +A X +C Y +C Z +A Z +C Y +C Y +A Y +B X +A Z +C Z +B Z +B Y +A Z +C Y +A X +A Z +A Z +C Y +A Z +C Z +A Z +A Z +A X +A Z +A Z +C Z +A X +A Z +C Z +C Y +A X +A X +C Z +C Y +A Z +C Y +A Z +A X +A X +A Z +A Z +A X +A Z +C Y +C Z +A Z +B X +C Z +A Z +A Z +A X +B X +A Z +A Y +A X +C Z +B X +A Z +C Y +C Z +C Z +C Z +A Z +A Z +A X +A Z +C Z +C Y +A X +A Z +A Z +A Y +A X +A Z +A Z +C X +B Z +A X +A Z +A X +C Z +A X +C X +A X +C Y +C Y +A X +A X +A Z +B Z +A Z +A Y +B Z +A X +C X +A X +C X +A X +C X +A Z +A X +A X +A X +C Y +A X +A X +C X +C Z +A X +B Y +A X +B Z +A Z +A X +C Z +A Z +A X +A Z +A X +C X +C Z +A X +C Z +C Y +C Y +A X +A X +A X +C Z +C Z +A Z +C Z +A Z +B Z +A Y +B Z +A X +A Z +A Z +A Z +C Z +A Z +A X +A X +B Z +A Z +C Y +C Z +B Z +C Y +C Z +A X +A X +C X +B X +C Z +A Z +A Z +C Z +A X +A Z +A Z +B X +B Z +A Z +A Z +B Z +A Z +A Z +B Z +B Z +C Z +A Z +C Z +A Z +A Z +C Z +A Z +A Z +B Z +A Z +A X +A X +A X +A Z +C Z +A X +A Z +A X +A Z +B Z +B Z +C Z +A Z +A Y +C X +A X +A Z +A X +A X +C X +C Z +B Y +A X +A X +C Y +C Y +A X +A Z +A Z +B Z +B Z +A Z +C Z +A Z +C Z +C X +A Z +A X +A Y +A X +A Z +C Z +A X +A Z +A Z +A Z +A X +C X +B Z +A Z +A Y +C X +A Z +A Z +A Z +A X +A Y +A X +C Y +A Z +C Y +A Z +A Z +C X +A Z +A Y +C Z +A X +A X +A Z +A Y +A Z +A X +C Z +A Z +A Z +B Z +A Z +A Z +C X +B Z +C Y +A X +A Y +B X +A Z +C Z +C X +C Z +A X +A X +A Z +A Z +A X +A Z +B Z +B Z +A Z +B Y +B Z +A X +A X +C Z +A Z +C Y +B Z +C Z +C Z +A Z +A X +B Z +A X +A X +A Z +A Z +A X +B Z +A Z +C Z +A Z +A Z +B X +C Z +B Z +C Y +A Z +A X +A X +B X +A X +B Z +C Y +C Y +B Z +C Y +C Y +A X +A Z +A Z +C Y +B Z +A X +A Z +A X +B X +A X +C Y +A X +A X +B Z +A X +B X +A Z +C Y +B Z +A X +A Z +A X +A X +B X +A X +A X +A X +A Z +A Z +C Y +A Z +B Z +C Z +C Y +C Z +A X +A Z +A X +C Z +C Z +C Z +C Y +A X +B X +B X +C X +C Z +C X +C Z +B Z +A Y +A X +C X +B X +A X +A X +A Z +A X +A Z +A X +A X +A Z +A Z +C Z +A X +C Y +C Y +C Z +A Z +A X +A Z +A X +A Z +A Y +A Z +A X +A X +A Z +A X +A Y +A Y +C X +A Y +C Y +C X +A Z +C Z +C Y +C Z +A Z +C X +A X +C Z +A Z +C Y +B Z +A Z +A Z +A Z +C Y +A X +A X +A Z +A Z +A Z +B Z +C Z +A X +C Y +A X +A Z +A X +C X +C Z +A Z +C Y +A Y +A Y +A Z +A X +A Z +A Y +A X +C Z +A Z +A Z +A X +A X +B Z +B Y +B Y +C X +A Z +A Z +C Z +A X +A Z +C Y +B X +C Y +A Z +A Z +A X +A Z +A X +A X +C Z +A Z +A Z +A X +A X +C Y +A X +A X +C Y +A Y +C X +A X +C Y +A Y +A Z +B Y +A X +C Z +B X +A X +C Z +A Z +B Z +A Z +A Z +C X +A Z +B Z +C X +A Z +C Y +A Z +C Z +A Z +C X +A X +A Z +A Y +B X +A X +B X +A Z +A Z +C Y +A Z +C Z +A Z +A Z +A Z +C X +A Z +B X +A X +A Z +C Z +A Z +A X +C Y +A Z +C Y +A Z +A Z +C Z +A X +A Z +A Z +B X +A Z +A X +C Z +B Y +A Z +A X +C Z +A X +A Z +A Z +A Z +C Z +A Z +A Z +C X +A X +A X +C X +A X +A X +B Z +A Z +A X +B X +A X +A Z +C Y +A Z +B X +C Y +A X +C Z +A Z +B Z +A X +A Z +A Z +C Z +A X +C Z +A X +C X +A Y +A X +A Z +C X +A X +A X +A X +A X +A Z +A X +B Z +C Z +C Y +B Z +B Z +B X +A Z +A X +B Z +A Z +A X +C Z +A Z +C Y +B Z +C Y +A X +C X +A X +A Z +C Y +A Z +A X +A Y +C Y +C Y +A Z +A Z +C Y +A Z +A Z +A X +C Y +B Y +A X +A X +A X +C Y +B X +A Z +A Y +A Z +A Z +A X +C Z +A Z +A Z +C X +A Z +B Z +B X +A X +C Z +A X +C Y +A Z +C Z +C Y +C X +C Y +A Z +A X +A Z +A Z +A Z +B Z +A Z +C Z +A Z +C Z +B Z +C Z +C Z +A Z +A Z +B X +A Z +A X +A Z +A X +A Y +A Z +B Z +C X +A Z +A Z +B X +A X +C X +C Z +A X +A Z +A X +C Y +C Z +A Z +C Y +A X +A Z +A Z +B Z +C Y +A Z +A Z +C Z +A X +C X +A Z +A Z +A Y +C Z +C Z +A Z +A X +B Z +A X +A X +A X +A X +A Z +A Z +A X +A X +C Z +C Y +C Y +C Y +A Z +C X +B Z +C Y +C Z +A X +A X +A Z +C Z +C Z +A Y +C Y +B X +C Y +A X +A X +A Y +A X +A Z +A Z +A X +A Z +A Z +A Z +A X +A Z +B Z +A X +A X +A X +C Z +C X +A Z +C Y +C Z +A X +A Z +A Z +A X +A Z +A X +B Z +A Z +A Z +A Z +C Y +C Z +B Z +A Z +B Z +A X +A X +A X +C Y +A Z +A Z +A Z +C X +A X +A X +A Z +A Z +A Z +A Z +B Z +A X +A Z +A X +C Z +A Z +A Z +A Z +B Z +A Y +A Z +C Z +B Z +C Y +A Z +A X +C Y +A X +A X +A Z +A Z +A X +B Z +B X +C Z +C Z +A Y +A Z +A X +A Z +A Z +A Z +A Z +A Z +B Z +A Z +B X +A Z +A Z +C Z +B Z +A Z +C X +B Z +C X +B Z +A Z +A Z +A Z +A Z +A X +B Z +A X +B Z +C Y +A Z +A Z +C X +A X +A Z +A Y +A Z +C Y +C X +C Z +A X +A Z +C Z +A Z +A X +A Z +B Z +A X +A Z +B Z +C Y +A Z +C Y +A Z +C Y +B X +C Y +A Z +B Z +A X +B Z +B Z +C X +A Z +C Z +A Z +C Z +A Z +C Z +B Z +C Y +C Z +A Z +C Y +A Z +C X +B Y +B Y +C X +C Y +A Z +C Z +A Z +C X +A Z +A Z +C Y +A Z +A Z +C X +A Y +A X +A X +B Z +A Z +C Z +A Z +B Z +C Y +C Z +A Z +C Y +B X +C Z +A X +C X +C Y +C Y +C Y +A Z +A Z +B Y +C Y +A Z +A X +A Z +A X +A Z +C X +C Z +A X +C Z +B X +A X +C Z +A Z +C X +A Y +A Z +A X +A Z +C Z +B Z +B Z +A Z +C Y +A Z +C Z +C Y +C Z +A Z +A Z +B X +C X +C Z +A X +A Z +A Y +C Y +A X +A Z +C Y +A Z +B X +A Z +A Z +A Z +A Z +C X +A X +A Z +A Y +A X +B Y +A X +A X +A X +A X +B Z +A X +C Y +C X +A X +A Z +A X +A Z +A Z +A Z +A Z +A X +A Z +C X +C Z +C Z +A X +B Y +A X +C Y +A X +C Z +A X +A Z +A Z +A Z +A Z +C X +A X +C Y +A Z +A Z +C Y +A Z +A X +A Z +A X +A Z +B Y +C Y +B Y +C Y +A Y +A Z +C X +B X +A X +A Y +C Z +A X +B Z +A X +A X +A Y +A X +A Z +A Z +C Z +C X +A Z +C Y +A Z +A Z +C X +A Y +A Z +A X +A Z +A Z +C X +A Z +A Z +A Z +C Y +A X +A X +A X +C Z +A Z +C Y +A X +A X +C Y +C X +C Y +A Y +C X +A Z +A Z +A Y +C X +A Z +A Z +A Z +C Y +C X +A Z +B Z +A Z +A X +C Y +A X +C Y +C Y +A X +C Y +A X +C Y +B Z +A Z +A X +A Z +A X +A X +A Z +A X +A X +C Z +A Z +B Y +C X +B X +B X +A Z +A Y +B Y +A Z +A X +A X +C Y +C X +B Z +A Z +C Y +C X +C Y +A Y +A Z +C X +A X +A X +A Z +A Z +B Z +C X +A Z +B Z +A X +B Y +C X +A X +A Y +C X +A X +C Y +A Z +A Z +A X +A X +C Z +C Z +B Z +A X +B Z +B Y +A Z +A Z +C Y +A Z +B Y +A Z +A X +C Z +C Z +A X +A X +A X +A Z +A Z +C Y +A X +A X +A Z +A X +C X +A Z +A X +B Z +B X +A X +A X +A Z +B Z +A X +A Z +C Y +C Y +B Z +C Z +A X +B X +B X +A Z +A X +A Z +C Y +A X +A X +B Y +C Y +A X +A X +C Y +A Z +A Z +C Z +A Z +B Z +A Y +A Z +C Y +B Y +A X +C X +A X +C Z +A Z +A X +A Z +A Z +A X +B Z +C Z +A Z +A X +C X +A X +C Y +B Z +B X +C Z +C X +A X +A X +A Z +A X +C Y +B Z +A Z +C Z +A Z +A Z +A X +B X +A X +A Z +A X +A X +A Z +A Z +A Y +A Z +C Z +B Z +A X +A X +A X +A Z +B Z +A Z +A Z +C Z +C Y +C Y +A Z +A X +A Z +C Z +A X +A X +A Z +A Z +C X +B Y +A X +B Z +B Z +A Z +A Z +C Z +C Z +A X +A X +A Z +C Z +A Z +C Z +B X +A X +A Z +A Z +C Z +A X +A Z +B Y +B X +A X +C Y +C X +C Y +B X +A X +C Y +A Z +B Y +A Y +A X +C Y +A Z +A Z +A Z +A Z +A Z +C Z +A Z +A Z +A Z +C X +B X +C Z +A X +B X +A X +C Y +A X +C X +A X +A Z +A Z +B X +A X +A Z +A X +C Z +A Z +A Z +A X +C Z +A Z +C X +A Z +A Z +A Z +A Z +B Z +A X +A X +C Y +A Z +A Z +B Z +A X +A Z +A Y +A Z +C X +B Z +A Z +A X +B Y +A Z +A X +C X +C X +A X +A Z +A X +A Z +B Z +B Y +A Y +A Z +C Y +B Z +A Z +C X +C Y +C Z +C X +A X +A Z +A X +A X +A Z +A X +A X +A X +A Z +C Z +C Y +A Z +A X +C X +B Z +C Z +C Y +C Y +A Z +A X +A Z +A Z +A Z +A X +A Z +A Z +A X +C Z +A X +A X +A Z +C X +B Y +A X +C Z +A X +C X +A Z +A X +A Y +C Z +A X +A Z +C X +B X +A Z +A Z +A X +A X +A Z +C Y +C Z +A X +A Z +C Z +C X +A X +A Z +A X +A X +B X +C Z +B Z +A Z +A X +A X +B Y +A Z +A X +A X +A Z +A Z +A Z +A X +C Y +A Z +C Y +A Z +A Z +A X +C Z +A Z +B X +A X +C Z +A X +A Y +B X +C X +A X +A X +A Z +A X +A X +A X +C Y +A Y +A Z +B Z +B Z +B Z +A Z +A Z +A Z +A X +B X +C Y +A X +A Z +C Z +B Y +A X +A Z +A Z +A X +A X +B Z +A X +C Y +A Z +A X +A X +A Z +A Z +A Z +A Z +A Z +A X +A Z +A X +A X +C Z +A X +C Z +A Z +C Y +A X +A Z +C Z +A Z +A Z +A X +A X +A Z +A X +A Z +B Z +A X +A X +C X +A Z +A X +A Z +C Y +C Y +C Y +C Y +C Z +A Z +B X +C Z +A X +A Z +C Y +A X +A Z +B X +A Z +C X +C Z +C X +C X +A Z +A Z +B X +A Z +A Z +A Z +B Z +A Z +C Z +A X +A X +A Z +A X +A Z +C Z +C Z +A Z +C Z +C X +A Z +A X +B Z +A X +B Y +C X +A X +A Y +A Z +A Z +A X +A X +A Z +A X +A Z +A X +A Z +A X +A Y +A X +C Z +A Z +A Z +A X +A X +A Z +A X +C Y +C Z +A Z +A Y +A Z +A X +A Z +C X +B X +A Z +C Z +B Y +A Z +A Z +C Y +A X +A Z +A Z +C Z +C Y +A Z +B Y +A X +C Y +A X +A X +A Z +C Z +A Z +A Z +A X +C Z +A X +C Y +C Y +A X +B X +C X +A Y +A X +A Z +B X +A X +B Z +A Z +A X +C X +A X +B X +A X +A Z +A X +C Y +A Z +C Z +C Y +A X +B X +C Y +C X +A X +A Z +A X +A Z +A X +A X +A Z +A Z +A X +A Z +A Y +A X +A X +A Y +A Z +A Z +C Z +A X +A Z +A X +A X +B X +A X +B Y +C Y +A Z +B Z +A Z +B Y +A Z +C Y +A Z +A X +A X +A Z +C X +C Z +B X +A X +A Z +A X +A Z +A Z +B X +A Z +A X +C Z +B Y +C Y +C X +A X +A Z +A X +C Y +A Z +C Z +A X +A X +A X +A Z +A Z +A Z +B X +C X +A Y +B Z +A X +A Z +A Z +C X +C Y +A X +A Z +C Y +A X +A Z +A X +A Z +A X +A X +B Z +A X +C X +A X +A X +A X +A Z +A Z +A X +A Z +C Y +C Z +B Z +B X +A Z +A X +C X +C Y +A X +B Z +B Z +A Z +B Z +C Y +A X +A X +A X +C Y +A Z +A X +A Z +A Z +A Z +A X +A Z +A X +A Z +C Y +A X +C X +C Y +C Y +C X +A X +C Y +A Z +C Y +B Z +B Z +C Z +A X +B X +C X +A Z +A Y +A Z +B Z +A Z +B Z +A X +A X +A Z +A Z +A Y +A Z +A X +A Y +A Z +A Z +A Z +A Z +B X +A Z +A Z +A Z +A Z +C Y +B Y +C X +A Z +B Z +B X +A X +C Z +A Z +C Z +A Z +A X +A X +A X +A X +A X +A Z +C Y +A X +C X +A Y +C X +C X +A X +A Z +A X +C Z +A X +C Y +B Z +C Y +C Z +B X +A Z +C Y +A Z +C Y +A X +A X +A X +A Z +A Z +A Z +A Z +C Z +C Y +A X +C Y +B Y +A X +A X +A Z +C Y +C Z +A X +A X +A Z +A Z +A X +A X +A Z diff --git a/AOC2022/Inputs/3.txt b/AOC2022/Inputs/3.txt new file mode 100644 index 0000000..a30889c --- /dev/null +++ b/AOC2022/Inputs/3.txt @@ -0,0 +1,300 @@ +hqBqJsqHhHvhHHqlBvlfpHQQwLVzVwtVzjzttjQVSjMjwL +gRTRnCRsFNGbTzLjwcSTMmSz +dGgsRWPGdWgZJqBBqhfpPq +HNCNJHCWJRRLqNJWlfrrrwsmlwGmmf +dddvLdLjdDvjvswlmGwlZQtjrt +dvcpbLVcvNJJHNPHSp +QDprSpLQRLQrQDmQcQFZjbbhZwdRsRFbbBss +gWGGPgNvJlgJzDlNGHCGPNZZgFBbsjbFFBwZwfhdZbZB +lHTlGMHlGCPNvClzGzJHvGcrMcVtLqMLcrrQVcVDrqrm +SrBpJFfldlFNslFJBZwsmwgVGGsCCVmZZD +jLtjvzLQMtWjbbQvDZZwGRJGgwggGZgv +MzqqjznQPqnnjznnctnFlSddPfHflhfBJFNdHd +mPNNGVCRngnSbgNw +WqsqlTssgvqvZWZzhsTzWhScdHtfJJnfbtSJwfczdtSS +sqTvhpqQvWZQLmDpDGMDGrgL +DQRcLQVLbbcbrFPcRtTBBBJnTZrrnmZTrMgJ +slGjjjdlhMfvdMQTvg +jlzNhWHhhWjHlwwwGLDSDtPQVtRzRbSzpp +DzDgfvzfDczfHCHSlgHLCmWG +PrpNPJtpPMBssmmVdmSVVr +PSRMwPnMpBNtNBTnnZwDqzQFfwhjZZqfhh +fzfBwhBJFbCwbwwg +strtgtrPgmPgFRsMdRnZRMFn +mrmLPDvGmmtSLDgmSqvHchhcHQzcQQJHBfBh +NsgwPPDgsPHqsTqqmLbLrDRhmrRVrbVW +lFpGFtfFlvSFplGFzptSGSSlhZbhjhfrmWbhLhmLbCZVZjWr +ccplJQSGcSSpVFvNqqsqPNqPQPTwqd +HFhPNNZGqSZrCDBVZBCB +RJTtwczTzCRVQrRHpR +mfgblfltwgwwmlJgcHNnGhSbFNnFsFjFqG +tSRqNRHpHnMSTqpcmrWWfqfmrCQCrW +lhGDtbgVVgDsDbhfldfwrzrfcdzwcr +vtDDhsgFBTNZFBHS +LcNpLLBNgdmHGmsBCrRBQDDwnwRj +hSWfZVhfPJJhfVWbhzbnQqQnRRRqPvCCrjvjwj +ztJSSJhzzSTJrZSbzzJTfzbZmLmggdmNMFNpmtmMGFFGNpmt +TRdFfLbTnLvZVlZvznQV +pgJGprJNhghhNjjPgPNrhNqqlVVlQVVQqQjfzBfQvZzB +rmGmSwJPwJprrNDbsfMRsdTDcDWHfM +QMpZZTtwMBttJMMbVqPpqLqbVlbqqN +rjCFGrdGRwdDHSnqflPVLqqVNllrfl +DHGDRvhvwTZhJWBQ +LcQCCpLQVhrdcFQCJrmmmwDwvDtJJnnw +TsZqqTzMRqZjfsjTTDjsNJnmnStRSHnnSJmnJSNH +sMMZZbDjZFdbVCFphV +FCcdFFGBsdDrbMNSmSdmQR +tVttHVLhvVgfTTtffNSMQRMZSRmMQNmHSb +gngvvwJtVVTvVvvvfwvJThhCzGcnsCjmCDmscPcGCsGsmz +fsnzRNZswZszPRZSLflPpDhlhvgWHmjWvJjh +bVcCqjbdjbcMdBrddrQphvHHmHWlggpWpppqJJ +FBTdFQGrTjLNsNtL +MSWWgMdgdbWbbfdgsPmddgCmSLZvSFvLQvnLrFNZvZFLlLLl +hjpJjGthjRNRptwJJqVBllnvrrlTTQFZqnTZnn +tjDGHwhHHjwjjJGpwjwjjJpwsdgffmbgMsmbDNcMcdmCPdsm +MlDrrgnTDLlCCmCRFgRSCR +HHhbbNQMccQFSNBmmpJNSJ +MwbMbshsswVbHQsbcVMcrtDllTlLqfTGVzLGrTlT +gSFzqQTpmVpQVpLFLrzJJRthlsQBlPsZsBhZst +rwrNDdbHdBhRhZbsjB +vvvMHwHcwGCwwNfMVSrqffWpSfSFzLmT +RNgMgRCCgCfPNfvNgVQmhPVWWjWjLLdLBj +JhJqqqwGDchsBVbdjldmBLmG +schZzDwTJzFTsctHFMtfftgMttpM +GHHWqWFWfWHqbRWsFZFmqZbhNjNDNppNjrjDcQdbpddhjr +wCLCVPfwgVSnPNrQhnDcjcNpDD +TPgLlggJLVwPVVPPwgTwvtSCFmzGGqzGZsGRqWBGfFRFJFRB +LfFLmGTPHBfpHmzBLdZfBfZTbWWttWSDJtWVDJDtSWJzVCCV +RssRRRhrRwQqMQQwnPngQrwvVSjttjJSjSVtWWCWjbVb +hQPnnRnQgNcQqqQQcsZTNTLpdZZfpZFHNpBp +VTCVVnwfFTvFmTCvWwJHdlhHWBJhJBRWNHgh +ZbSMZbctGtScQSZsSpZpPpplhBhtdJDRDJjhdtlRJRjNRj +rLsbBQSMBGspPGcMPQvnqmwzwmCVLmqVmwTF +GVrrQVHHHQGTllQjPHGrlCQpZZpJFWZFzzjBssDJghzhFZ +NSMmWmtqMWqSNbcctdLcdghpgpppssZgbgzpFzJJFs +cfLqLwMRdtNLMlQrvflWTQPffQ +FjtGflGsbNqjsmjGGGbmqQQQBQBTjdpTpJTWvJBddj +CPrVRMnvvLSRHLnBpwdWTRBQwQzBzR +SnZMZPcHMlqchsvGGb +nnJnswzPCtmZDCpmhphD +rSVVLQQQGQjwpdmdNmpS +VvBcQvGcQgGLBgWrwznfJsncltJsJnssPM +dhbwLStzSGmmmzJJvFgJNvnrgvhv +VTsTsRscRsVBMRVTTsjZVPCnDNvfrPfDvNCfBrPNDJ +scHHQTpJZjHwzLSHHtqHSt +MHmFsBDmGpGTBfmCfWCffhzgvf +wcjwnRLPZRVbtCjtNttGCh +ZLGVJRrnPPPwQwPppqDHFpBFTpqFDr +GzMgVfGRdRVngDjhqcjctrtrzzzs +QbQSHwHSLbWwJJFwJPLPSWTQjrhqtjflThccsclCcscCCmmj +JFbNSbLvHHLQFLvwQJFWSBVgMNGdBBnBMVfddpGngB +sZHNJwMsvHswwvMWqBzhChWPMBzd +bHQQQRDHRcRcDljttBldlPBdggBCqB +QjnDbDjjjncRjbQnfZpvssZNHnppFNpvvp +NdmfPNMHMdNMHcffHBCwwsvsRRllvwlcqjwscw +VLhVGLpLShgvrjwFhjqfls +pppnnQtVpGZVWtzGgVzgSSfnCCDmdPBMDbmmDMmdNMBmWNmm +rrfgCrrMllfnBhBrdCFfWLFmmVFVWQvWwtwV +TmSGSqNzvwwTFVvj +NSGSmNbDzpmSpbHmSJqqlMgdMndcgdccdpgllRRh +bbPtLnLcLJzTjcJbbTcttLcSgwmvWfVvfVvBgfmWVJMJMJMW +ZsDNNGDRsrHzpNRwMlgRlgmMWvffWM +FGzQpZGGLFjnSFbF +DQZVDdWWNBtgWnJCnL +SSHSmbHRFqGrmqJrbbGzjmzCwrvgvwnBwnCvprwvpwwPvv +qFFFSmsRRzzFjcFsSsjmzJzflhlZTTThdhVflZlVDDhMcN +cdvrFddqDtDvqgCDtFtrvvvFSmShPShJVJmMJSJbVBgTlmbM +GzjpHzGHHfQNfJSlPQbJBSTJBM +HWpspsWjNsGRHfpwNszzLfGqnCnZtdvvcZvwqFCcZqMZCv +rhHhDhhDrRNwDRhNRLRqNPHjHSpVpVlljSSMnlHnjS +sVVBsFBJBtBSPSjtjPPZZS +JmddVTzsffcGNwzCqNqR +nQfqFtZWFZnFJWfpGqhDsGLLPLVbrPhr +CzjwMTgBgTNSGLVVDPbjbS +wMCmgNNdgvzGdRQcFGFdfJ +CbqCDnwFpDpCVfBPmPffPfRfpB +svcsjlGJGnlnvjvzgQQgGzsZPhBRcRPhWfBZBhPhWRRhPN +sJngnjSGGTGzgJGrrbCqLHrCLwSFqV +hnRnJrwMHnQRRRwMhRrnJRBLZtBPdPSdtZZjjstsLHBP +pBBzzcbTbzCcFzTvlSCZLCtSvvttdZ +FWmNzBFNDnRqNRDM +lvzlSPRDSpDJmNwNGgFpfsFN +WBHrtrLBbhWHtdrFwFFsjzwfFjsdsF +HWnrHnTWhWTCTzTBnRZqDDDCqZcclRvSJR +qcdVbpcMFQcdMGcMFjjpbCnCGmCnJHDHDGJChzCJCJ +wWwlSfBRgRNBDPJnCgCrgzms +tBTfTRwlwRLNwTRmWtNwQFZtqcjcdcqpbdQMqMdd +jJRzwDdwFdJddcjjFCFvQLvNlBhSBhCC +gMMpbHpmnHpWfnlCSBQCPmPllQSs +nHWHVfTGdTSjZzDT +sCVTsBPltgDSbLvRMMDT +WNrjNmWZwmZwfVLvLRbRNvMp +mrHGrmnjqVzjGqdmCltlhFFllgsHBPCg +wbglgTFRblnMRltJBNrDDWQbtdbN +dqCpcjPLGfHZQBJNGGvQDZ +SPssjVSqPCLpScfCgFRVmTlRwndlRwTR +hWMWMhTTDgWMzGMszQShGWJPCQmPVCNPffPfVJftqNQC +nbnHHwLrnswwPVCPZV +nsRvFHLsvplvrcsSWDDDddjjDlMTjT +HRCnhWZhCddgwRcwhdWZHHQLJzSLsSzjJwSjztsmtzsmLF +VlVVNNVqTlMVbTVVMqvqvrDTjQfFtjstJmzftfzsSbtStJQb +pQvvPpBqNBccPWWhcWWc +glJTndVWCTDDVFvnVndVlCvwmBmqBBwQmwPwmMPggGsPGm +NhcSrhNZHhZzRtHcNRrSMSMSFBMGmsQQGLMPPF +hcpRzbcHjRhRbZRzZRztzRpJVdCdnfCnlFvdDTnJCVDjWd +dqWvjjBdWWqMjdvvMJjWWjMGgcfchhzrhwbrwShwgzSqNb +mmmmsVTlVlsLQmnpsNcfgfwNLgczhcGhzw +RslpsnGGGlWdCZFMMRWR +pfSpZSrdSMVDVVLMMDDZpdgRWMPGqqPGqmqqGGhGHNRN +wwQBwtjvvJlvsnbTbvBRHgPmlqhlqWWHqZZgNm +JnQwJvjTtzTZwJnbzzfCrfLCfdfdddfD +PZcnljZFTVmQdlQh +JCLLqBBCSNCCqzJNzStBpStBmsdhVTdmVWsWmdhfLhWVdfrR +BpMzzqSzppMMqpJqqgzPFcjZjnTjgcjbPjPDPZ +HLHWmqBHHqWbMHFtbgWcdhspPcPchndPpn +ZRVSQZRfVZGRgnfsdhLgLndL +jzJRwJRSJJvSlZQGRVwlSGZDMqmmCCCmtNbCmtCMzFNLbF +fDhlBhhZmQRRfHwLdjHFFWQQjQ +ZMTssVVzvbCqJddsLwwH +TzgTbgGGzztMbbvzvVbGvSPBrlShRrfnNrnBDlNcRDZRZB +bjfqGfvFfcHvRwGFRHjbgQtddlQljWpWnQgdWWll +TSPVVSVwSzSDTDlntDndnlWddt +hTrrNCBCVrCrrVshThHHbZvFGscwbfFGRJcZ +jNhMjcgvMNgWggvttcFtchvPFFzdPPrQrrGGQQszRPQrRG +wSCqCmmppbTwPnGHrQdrGCCD +LlqwGmGScLcVthVt +dGGrWWDqmCnwCCQMQrMbFHbMHsPFgPVZbgFPgg +tLRTBwfvTBJcZFNFZRHSHPVN +zjJLTvjcwDzqqhGD +DzrWszFFrtBBhnhNCClHlnHbSbmlSn +ZLwLcVVZcLVpvRwLgMLpLJgPmmQSNSTNbtTvQmCHQCClCHCt +cfgZJwwVLJZPPVpRwzhzrrfGGBrGtDrBsf +BTsdCQsQnwwdcCqqdCnsFvGFpFBvGzrLLmmzpvfG +pjZjgPVlJVMVtgJSWLPvfFFFbNNmNbvbmL +ggVplgJtHSSggdCHsscChhdnnR +JddZcSlvvGFJNWVWFgQgVtFWhg +nDqsHqCszwjCCPMnfhfBhtdWggfg +bqppHqqHHbPLjLCppbwDdRNvdmcTmlNZGGbTTcNv +lcZDSvztcHHcMSZVHVvMZBqBNNFNhBNTTmssBqBcFB +bbGJQdQPpGfQJQdJfLFhmznhzLLNTFhNhf +JGpWpPJddbPpPwpjbtZSzltDgWDSgvtrVv +lJcNlNjPcmtFzHtHBJFg +VPZdwGGWVrsdPWhWwhzzCzzFppDFMBtttFCr +wshsLVfWTnGswdhwcmRjRmScqTcjlPNq +BsBshRZQQsVdsZQZSdsPDwJDHNNHBztNNFMGGwMF +nSTpLjcvHppzwwNt +jcqncjjvfmgrCfvqrnZbmdmSsdbVWlsmhRdW +FjjqRZjZFZWFqPvNvvPQpmbPDCmt +GSnHSnrScncHhrtncGshVbmTmbpVvppCmpCTmTCmCC +rHfnddwdfctlzFFgwqlj +wBwlBmmhwRVThVBmFHnvHMnfsmFfHq +jzwGSGJNZCCssHfsCPfv +GJbzbZdbwJdtdQphRVWQ +ztFZccVHFWHHLSDBpSBPhhZw +fmjsCmqnNTJnvbTvLRPDlCpBSPBpRShl +JqsGTSNJGqvqvNvttGQQGdFrQctrrF +mNZqjTFrZqrTNTTGSSSbrhrhRFRHcnLCzcCdHcLBdccHLzRC +JDDfJswJDWsvgVgwpWnRBlBzGCnlCLBlcCDl +vVGpfQWJpsPQMVgvppVwgWPJrqSZTrZqhTQTrhjbjqSSjZqt +fMSDzDHzpDDVsStdDgwwFZFrrMPCNngCZP +WmLnbWmvvWTTLWWQWRGQvLvrPFZJcgJFCZNrCgGCFCPNPF +QLhlqhljWvRQbbqlqnfStnHdBqVVfzpq +qWZtSQTSvJJvBfJVBBVFNDNHbbdRVPdpNFRF +fGcwwmCgsLhgwLchbpHdrrrphdPRPh +gMjllmcjwsLMgcwlMnSWzSqjSZJqZqZfjQWv +cdRHPjRFRdFVHGcFfFTHQTHVLSQBsbsqSCLqllBJqqbSqLJC +WwWppWgtNrnzzWDmrrmNvWJClJSSbqLJJCGbsCgJbLLg +MnvWpmwvWnvtGPjVRcHRRHMj +dLMDhdHGrcLTvvvstB +nPqgGGNPqRgRSjgmlWjbbTTPPBvpvpTcswwsTF +NRGmgjRnWgnZJqllmSqjnqSDhQzVrdQHDfDrDJQDMHDJzM +RgmcPmGNQwwNmSRwPPgfmrBlCDlGbvFFvtrCsvlrBB +nfdVnjHdMWnTqflFtbjrllrlsCDl +TZJVMhnfMnVMHnpRRNRzgJRzSzgwPR +nTbsblzlnGllmsNnbDwbcWQWwWBFJBQcWQvPWFJM +HRZRdSRdCdLdRftrHHZfSQBMWJMgMzQPFWMJCFWgvQ +HVzrLrrjRjLGnlTnlDlsjj +RQdTdZhWqlZhTdWTqblhNmTMVnnrQsnnpvgMVMHMgHMrgP +fjSSfjcCzGNBjCjsnpMVpnpzvpzsHp +GGwLGSccwjwLwBcGLGSqZWmmdLZLWThmRNZmWR +ncmBrmfdfcVcfGnQdVWRBRvgqNvDvWqzLRqg +PlpPbSbLFPLpFstsbqRqZMqWZqMWSDRzvq +sjtjHCwJwlHfdfjccmmLLQ +tGMtLHQGWzLHFVQtVfQtMWtbgrZNbdfSbccggrcTjTrfbm +swRChnwqhBCCCmSjcNSdcd +vnlnqDRlsRnJJqswJvGMFVMMdWtpVJFMQQFL +ffcHLzGmfvqqfWfF +rJrrRSPCPMCrPRQMNNWJQjJCnqFVVVTStqVnSBdqppBVtpqd +jNQQPjQMCRQwwQbRQbjMgwbNhwWZHHmzmlchlHHHDcLmWzhD +JzvrRHHJvCRZFPFnPgsQVVQNzQTQDttVsB +GSMjpqdbGNppBtDhPN +MbmqMwGbZPmPHJmv +ggVSVWzCNbbNCbRM +DfVhVsVQcQDmpmQTTQLjPjMjbDGNlbRMlNGG +sftTFJJccnphcfncTsfBvwZvrzgzZzZvBrVnzq +qqlClBNSCNSRQMvdrwFvnBrr +GDfhDtszhhsThpTDzsfpprMrFvQvrnnfvQrwHFbfFH +VtggWhpsmGVTGJWMjWjNjPWjLL +NSnShnjsswSsRPNsrnwcwMHfFwGqbvqCbFfg +LDJtzzmgVVlvqGbzvFfzff +mlJmQQpmJpZpBJJdjBNhrnnRdTTgNN +RtRRvbhDFPHHlhtPhRvPRtqjmzqzzwLjHQHLLLQVmVjq +WNNBBZfgfWnqVQwNqzmQcm +MZGfzSrTTnWrrWsTWnfSGbGllPCbGlJRvlPllCtt +phgcNfqgfpZsjjpdsS +brHHnWPbDPDbTPlDJJvJJPrMVVzRSdFzwdZZzFnsdzzVdVZs +SbStvJMDQgNmmtgg +lzDMDhfFRlfMFTfMGPMbFTlMpBHrmpjjCFjmBmrqBjtCmjjq +VvVswLLHZnJJwdndNsSSNBpCpjqjmNgrmCNtmmqm +nHcZWcSVsScTDlPPlTPb +DFMQSlMDpSpFDtDFccHvmqzvbHZjJmvzmmQH +CSgffrPssdgqRbqzzRqZ +dsdsfGsrBPsTVcMctMVNNhtStW +MDWRDWpgDvWpNptvNMnJCHJHMwHCndJfZn +blcrqTFmmcbhLTTTmlBZbjBJdBfBnCbQBdfn +TzlnhcnzTmhLRvSDsRzDPzWR +nwmmPnnPDjclhhjfFzzzwqbFFNHwVqVq +vSQrbpWCvMWQQWQMLgFJVHqzBzJVNqzBFL +CvCvQtWWQmcbtntPcb +qzvtzCCtLsLLzmQCHqpSsHSmfrnNrTrNWWMNGnWZTMZGBvWn +PglVFJwPhbcghVTBpBnWWhWnTMhB +FgjcJccVpwDcwFgVDsqzddqLqSDSCQQL +PLHsSVGGPvSLTffjMJWJJBjfBL +gNhwgTqDcqwpDqNhFpDFhFWfnndjcMJjMWzzBtntJBnW +DFhhQRRwbCbwRQChppmTHCVGTlslrsvrrSVZ +hHnRfSMmsSVrFvQqrmDPgr +jjcBzjZLpWccJLczBjZjWGwCnNzDvrgPCgQvFggvqrQFnr +jtZGpLwjWBpBWcfMTttfbHRnHTbT +swSHffFTVrJlHFSWrTpMZMPhMNBqBhTvhhqZ +bQbLQGGjQLdRCcQjGZBzpzBZqMBBBVdBqh +RjQDQGmgmVVbVcjjmjgcnWtJfrwsfrtHlwswnfHSFw +bVHbbMFDcbDbcmbbHVRbMRFgzSmdzSSTBtTjBdQTzlSldQjT +nqpqCMwJffqQSzTBQlqd +wvJhnnfrfsJrCNffvspRrPPFMbPMRRPPMZgZHR +FnJZnssHvMdJWJpW +mlDlllGrSGmttwlGvZgrzZNWgggzTzdT +bCltZCthtRcbcFbjFL +JGmHrJwGzzpllRZdzZLRcW +htbPSbVtFbbgjhffgPSfTVSDcHDDDLWscRdsZjdZcRssWc +vhfFbFvVHbtTVgFPhmJBCvBNrqBBrGCqQB +BcNQcvcBchSQNccLLvhTqbJZTrHrrrzzqTZMZMFZ +tpHDsnDRslllCCHtwnpsfjRgrJrVMfMmMrFrzVJFzrVZbZrr +tnDpjCwPLNSPdhPH +qnjvvBwBhSSFPgDQLVVDqgLr +WbszTbHTbsbHJWHLLMVZmJPQDrvmZL +ctlRbtCWWtvlSfjljjhBnBNB +TsnvssDDQlRbzMzjDMqHwq +tSGjZCfFZtCFLtVGWGZFbcqwHbhWdbzbwHbdwbdw +ZGBFJFZVBLjStZPBBZLRvlmsPTvsgrrnrTllvs +PgQdNsQFsdNwWqQBsQrTrTLpbrnTpGngnbTG +hCzzMJVDmfzmBDMCfSfhTMGcnpnTcjGrpjbMGjbL +CVVfvCflSHNHvPdBHW +DwlMjMNjStgmthMghg +PTlpHnJJTcZvTTbHZWZTvpqdHhmLgrgdfrhLLsmshmsLts +vncqTbPqcpCnbCPvccZbDBCGzzNBwjDlVVGFjjVR +QsdGGCztZVRddPgndf +DrNNBbwNHNwlbjFbbCNjNwDWWDPPVfDMgfmVMfnMWmmP +rvJBbbBNcLCtJZQL +NfLlqLhbNPddLPqLhpgHwFFwFHHTwRHWwPFTrT +MSMSCnjBnBjCscjVDVljTvHmmWnrwTrwFTrvTWTT +JCMMBzDMJcZZCjDzSBDNJgdfdQlqlLNdhgGLhp diff --git a/AOC2022/Program.cs b/AOC2022/Program.cs new file mode 100644 index 0000000..c8da6f6 --- /dev/null +++ b/AOC2022/Program.cs @@ -0,0 +1,84 @@ +using AOC2022.Puzzles; + +using System.Linq.Expressions; + +namespace AOC2022; + +internal static class Program +{ + static void Main(string[] args) + { + Console.WriteLine("Enter Days separated by space, like '1 2 3 4 5'"); + try + { + var daysToProcess = new List(); + if (args.Length == 0) + { + Console.WriteLine("No input processing all files in Input/ directory"); + foreach (var file in Directory.GetFiles("Inputs/")) + { + var fileName = Path.GetFileNameWithoutExtension(file); + if (!int.TryParse(fileName, out int dayNumber)) + { + Console.WriteLine("Just name the files 1.txt or something ffs"); + return; + } + daysToProcess.Add(dayNumber); + } + ProcessDays(daysToProcess); + } + else + { + foreach (var arg in args) + { + if (!int.TryParse(arg, out int dayNumber)) + { + Console.WriteLine("Just enter the numbers dude"); + return; + } + daysToProcess.Add(dayNumber); + + } + ProcessDays(daysToProcess); + } + + } + catch (Exception e) + { + Console.WriteLine("Just enter the numbers dude"); + Console.WriteLine(e.Message); + } + } + private static void ProcessDays(List dayNumbers) + { + try + { + dayNumbers.ForEach(day => + { + string instanceToCreate = "AOC2022.Puzzles.Day" + day; + Type? typeName = Type.GetType(typeName: instanceToCreate); + + if (typeName != null) + { + if (Activator.CreateInstance(typeName) is IPuzzle puzzle) + { + puzzle.FirstPuzzle(); + puzzle.SecondPuzzle(); + } + else + { + Console.WriteLine("Something Broke"); + } + } + }); + } + catch (NotImplementedException nex) + { + Console.WriteLine(nex.Message); + } + catch (Exception e) + { + Console.WriteLine(e.Message); + } + } +} diff --git a/AOC2022/Properties/launchSettings.json b/AOC2022/Properties/launchSettings.json new file mode 100644 index 0000000..2ac8753 --- /dev/null +++ b/AOC2022/Properties/launchSettings.json @@ -0,0 +1,14 @@ +{ + "profiles": { + "WithParams": { + "commandName": "Project", + "commandLineArgs": "1 2 3" + }, + "WithoutParams": { + "commandName": "Project", + "workingDirectory": "./" + + //"commandLineArgs": "1 2 3" + } + } +} \ No newline at end of file diff --git a/AOC2022/Puzzles/Day1.cs b/AOC2022/Puzzles/Day1.cs new file mode 100644 index 0000000..3ee9ea3 --- /dev/null +++ b/AOC2022/Puzzles/Day1.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace AOC2022.Puzzles; + +internal class Day1 : IPuzzle +{ + public void FirstPuzzle() + { + throw new NotImplementedException(); + } + + public void SecondPuzzle() + { + throw new NotImplementedException(); + } +} + diff --git a/AOC2022/Puzzles/Day2.cs b/AOC2022/Puzzles/Day2.cs new file mode 100644 index 0000000..a62fd50 --- /dev/null +++ b/AOC2022/Puzzles/Day2.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace AOC2022.Puzzles; + +internal class Day2 : IPuzzle +{ + public void FirstPuzzle() + { + throw new NotImplementedException(); + } + + public void SecondPuzzle() + { + throw new NotImplementedException(); + } +} + diff --git a/AOC2022/Puzzles/Day3.cs b/AOC2022/Puzzles/Day3.cs new file mode 100644 index 0000000..ef762c7 --- /dev/null +++ b/AOC2022/Puzzles/Day3.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace AOC2022.Puzzles; + +internal class Day3 : IPuzzle +{ + public void FirstPuzzle() + { + throw new NotImplementedException(); + } + + public void SecondPuzzle() + { + throw new NotImplementedException(); + } +} diff --git a/AOC2022/Puzzles/IPuzzle.cs b/AOC2022/Puzzles/IPuzzle.cs new file mode 100644 index 0000000..3cd47b6 --- /dev/null +++ b/AOC2022/Puzzles/IPuzzle.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace AOC2022.Puzzles +{ + internal interface IPuzzle + { + void FirstPuzzle(); + void SecondPuzzle(); + } +} diff --git a/AdventOfCode.sln b/AdventOfCode.sln index f9aecd7..4138cd2 100644 --- a/AdventOfCode.sln +++ b/AdventOfCode.sln @@ -3,7 +3,14 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.4.33122.133 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AOCDayOne", "AOCDayOne\AOCDayOne.csproj", "{9A5F75A3-4FD2-4CE1-9047-639AE19F86A1}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AOCDayOne", "AOCDayOne\AOCDayOne.csproj", "{9A5F75A3-4FD2-4CE1-9047-639AE19F86A1}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{99F5AC62-C5E8-4264-A511-C2ED59988EDA}" + ProjectSection(SolutionItems) = preProject + .editorconfig = .editorconfig + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AOC2022", "AOC2022\AOC2022.csproj", "{E9B704DE-D6D2-4A72-971D-28E9F326B6EA}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -15,6 +22,10 @@ Global {9A5F75A3-4FD2-4CE1-9047-639AE19F86A1}.Debug|Any CPU.Build.0 = Debug|Any CPU {9A5F75A3-4FD2-4CE1-9047-639AE19F86A1}.Release|Any CPU.ActiveCfg = Release|Any CPU {9A5F75A3-4FD2-4CE1-9047-639AE19F86A1}.Release|Any CPU.Build.0 = Release|Any CPU + {E9B704DE-D6D2-4A72-971D-28E9F326B6EA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E9B704DE-D6D2-4A72-971D-28E9F326B6EA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E9B704DE-D6D2-4A72-971D-28E9F326B6EA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E9B704DE-D6D2-4A72-971D-28E9F326B6EA}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE