From fd0993114518fcb8eaec17f5c767339fc63d8821 Mon Sep 17 00:00:00 2001 From: "Valeriano A.R." Date: Sun, 3 Dec 2023 02:44:22 +0100 Subject: [PATCH] Create AdventOfCode.Common. --- .../AdventOfCode.Common.csproj | 9 +++ .../DayHelper.cs | 20 ++---- .../IDay.cs | 2 +- AdventOfCode.sln | 6 ++ AdventOfCode2017/AdventOfCode2017.csproj | 4 ++ AdventOfCode2017/Program.cs | 29 +------- AdventOfCode2018/AdventOfCode2018.csproj | 4 ++ AdventOfCode2018/IDay.cs | 7 -- AdventOfCode2018/Program.cs | 42 +----------- AdventOfCode2020/AdventOfCode2020.csproj | 4 ++ AdventOfCode2020/IDay.cs | 7 -- AdventOfCode2020/Program.cs | 66 +------------------ AdventOfCode2023/AdventOfCode2023.csproj | 10 +++ AdventOfCode2023/Program.cs | 4 +- AdventOfCode2023/Usings.cs | 1 - 15 files changed, 54 insertions(+), 161 deletions(-) create mode 100644 AdventOfCode.Common/AdventOfCode.Common.csproj rename AdventOfCode2023/IDay.cs => AdventOfCode.Common/DayHelper.cs (69%) rename {AdventOfCode2017 => AdventOfCode.Common}/IDay.cs (76%) delete mode 100644 AdventOfCode2018/IDay.cs delete mode 100644 AdventOfCode2020/IDay.cs delete mode 100644 AdventOfCode2023/Usings.cs diff --git a/AdventOfCode.Common/AdventOfCode.Common.csproj b/AdventOfCode.Common/AdventOfCode.Common.csproj new file mode 100644 index 0000000..6836c68 --- /dev/null +++ b/AdventOfCode.Common/AdventOfCode.Common.csproj @@ -0,0 +1,9 @@ + + + + net7.0 + enable + enable + + + diff --git a/AdventOfCode2023/IDay.cs b/AdventOfCode.Common/DayHelper.cs similarity index 69% rename from AdventOfCode2023/IDay.cs rename to AdventOfCode.Common/DayHelper.cs index 19b36e6..d694251 100644 --- a/AdventOfCode2023/IDay.cs +++ b/AdventOfCode.Common/DayHelper.cs @@ -1,21 +1,15 @@ -namespace AdventOfCode2023; - -public interface IDay -{ - string ResolvePart1(string[] inputs); - string ResolvePart2(string[] inputs); -} +namespace AdventOfCode.Common; public static class DayHelper { - public static void RunDay(int currentDayNumber) + public static void RunDay(string eventName, int dayNumber) { - Console.WriteLine($"Day {currentDayNumber:00}"); + Console.WriteLine($"Day {dayNumber:00}"); Console.WriteLine("------"); Console.WriteLine(); IDay? currentDay = null; - Type? dayType = Type.GetType($"AdventOfCode2023.Day{currentDayNumber:00}"); + Type? dayType = Type.GetType($"{eventName}.Day{dayNumber:00}"); if (dayType != null) { currentDay = Activator.CreateInstance(dayType) as IDay; @@ -27,11 +21,11 @@ public static class DayHelper return; } - string[] linesDay = File.ReadAllLines($"inputs/Day{currentDayNumber:00}.txt"); + string[] linesDay = File.ReadAllLines($"inputs/Day{dayNumber:00}.txt"); try { string resultPart1 = currentDay.ResolvePart1(linesDay); - Console.WriteLine("Day{1:00} Result Part1: {0}", resultPart1, currentDayNumber); + Console.WriteLine("Day{1:00} Result Part1: {0}", resultPart1, dayNumber); } catch (Exception ex) { @@ -41,7 +35,7 @@ public static class DayHelper try { string resultPart2 = currentDay.ResolvePart2(linesDay); - Console.WriteLine("Day{1:00} Result Part2: {0}", resultPart2, currentDayNumber); + Console.WriteLine("Day{1:00} Result Part2: {0}", resultPart2, dayNumber); } catch (Exception ex) { diff --git a/AdventOfCode2017/IDay.cs b/AdventOfCode.Common/IDay.cs similarity index 76% rename from AdventOfCode2017/IDay.cs rename to AdventOfCode.Common/IDay.cs index 906ca49..7759f56 100644 --- a/AdventOfCode2017/IDay.cs +++ b/AdventOfCode.Common/IDay.cs @@ -1,4 +1,4 @@ -namespace AdventOfCode2017; +namespace AdventOfCode.Common; public interface IDay { diff --git a/AdventOfCode.sln b/AdventOfCode.sln index 291fae9..167a2dc 100644 --- a/AdventOfCode.sln +++ b/AdventOfCode.sln @@ -19,6 +19,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AdventOfCode2023", "AdventO EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AdventOfCode2023.Tests", "AdventOfCode2023.Tests\AdventOfCode2023.Tests.csproj", "{00869F26-F53E-451D-BEA2-4E3FFE2216FB}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AdventOfCode.Common", "AdventOfCode.Common\AdventOfCode.Common.csproj", "{D6C2B27F-22C3-49E2-9591-225B7132452D}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -57,6 +59,10 @@ Global {00869F26-F53E-451D-BEA2-4E3FFE2216FB}.Debug|Any CPU.Build.0 = Debug|Any CPU {00869F26-F53E-451D-BEA2-4E3FFE2216FB}.Release|Any CPU.ActiveCfg = Release|Any CPU {00869F26-F53E-451D-BEA2-4E3FFE2216FB}.Release|Any CPU.Build.0 = Release|Any CPU + {D6C2B27F-22C3-49E2-9591-225B7132452D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D6C2B27F-22C3-49E2-9591-225B7132452D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D6C2B27F-22C3-49E2-9591-225B7132452D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D6C2B27F-22C3-49E2-9591-225B7132452D}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/AdventOfCode2017/AdventOfCode2017.csproj b/AdventOfCode2017/AdventOfCode2017.csproj index efc033b..af2eded 100644 --- a/AdventOfCode2017/AdventOfCode2017.csproj +++ b/AdventOfCode2017/AdventOfCode2017.csproj @@ -11,4 +11,8 @@ + + + + diff --git a/AdventOfCode2017/Program.cs b/AdventOfCode2017/Program.cs index 995f607..0d06537 100644 --- a/AdventOfCode2017/Program.cs +++ b/AdventOfCode2017/Program.cs @@ -1,28 +1,3 @@ -using System; -using System.IO; +global using AdventOfCode.Common; -namespace AdventOfCode2017; - -public class Program -{ - private static void Main() - { - int currentDayNumber = 3; - IDay currentDay = null; - - switch (currentDayNumber) - { - case 1: currentDay = new Day01(); break; - case 2: currentDay = new Day02(); break; - case 3: currentDay = new Day03(); break; - } - - string[] linesDay = File.ReadAllLines($"inputs/Day{currentDayNumber:00}.txt"); - string resultPart1 = currentDay.ResolvePart1(linesDay); - Console.WriteLine("Day{1:00} Result Part1: {0}", resultPart1, currentDayNumber); - string resultPart2 = currentDay.ResolvePart2(linesDay); - Console.WriteLine("Day{1:00} Result Part2: {0}", resultPart2, currentDayNumber); - - Console.Read(); - } -} \ No newline at end of file +DayHelper.RunDay("AdventOfCode2017", 2); \ No newline at end of file diff --git a/AdventOfCode2018/AdventOfCode2018.csproj b/AdventOfCode2018/AdventOfCode2018.csproj index efc033b..af2eded 100644 --- a/AdventOfCode2018/AdventOfCode2018.csproj +++ b/AdventOfCode2018/AdventOfCode2018.csproj @@ -11,4 +11,8 @@ + + + + diff --git a/AdventOfCode2018/IDay.cs b/AdventOfCode2018/IDay.cs deleted file mode 100644 index 34c0cf5..0000000 --- a/AdventOfCode2018/IDay.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace AdventOfCode2018; - -public interface IDay -{ - string ResolvePart1(string[] inputs); - string ResolvePart2(string[] inputs); -} \ No newline at end of file diff --git a/AdventOfCode2018/Program.cs b/AdventOfCode2018/Program.cs index e1a4147..ff6d91b 100644 --- a/AdventOfCode2018/Program.cs +++ b/AdventOfCode2018/Program.cs @@ -1,41 +1,3 @@ -using System; -using System.IO; +global using AdventOfCode.Common; -namespace AdventOfCode2018; - -internal class Program -{ - private static void Main() - { - int currentDayNumber = 15; - IDay currentDay = null; - - switch (currentDayNumber) - { - case 1: currentDay = new Day01(); break; - case 2: currentDay = new Day02(); break; - case 3: currentDay = new Day03(); break; - case 4: currentDay = new Day04(); break; - case 5: currentDay = new Day05(); break; - case 6: currentDay = new Day06(); break; - case 7: currentDay = new Day07(); break; - case 8: currentDay = new Day08(); break; - case 9: currentDay = new Day09(); break; - case 10: currentDay = new Day10(); break; - case 11: currentDay = new Day11(); break; - case 12: currentDay = new Day12(); break; - case 13: currentDay = new Day13(); break; - case 14: currentDay = new Day14(); break; - case 15: currentDay = new Day15(); break; - case 23: currentDay = new Day23(); break; - } - - string[] linesDay = File.ReadAllLines($"inputs/Day{currentDayNumber:00}.txt"); - string resultPart1 = currentDay.ResolvePart1(linesDay); - Console.WriteLine("Day{1:00} Result Part1: {0}", resultPart1, currentDayNumber); - string resultPart2 = currentDay.ResolvePart2(linesDay); - Console.WriteLine("Day{1:00} Result Part2: {0}", resultPart2, currentDayNumber); - - Console.Read(); - } -} \ No newline at end of file +DayHelper.RunDay("AdventOfCode2018", 2); \ No newline at end of file diff --git a/AdventOfCode2020/AdventOfCode2020.csproj b/AdventOfCode2020/AdventOfCode2020.csproj index e311662..bdb2324 100644 --- a/AdventOfCode2020/AdventOfCode2020.csproj +++ b/AdventOfCode2020/AdventOfCode2020.csproj @@ -11,4 +11,8 @@ + + + + diff --git a/AdventOfCode2020/IDay.cs b/AdventOfCode2020/IDay.cs deleted file mode 100644 index 68633af..0000000 --- a/AdventOfCode2020/IDay.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace AdventOfCode2020; - -public interface IDay -{ - string ResolvePart1(string[] inputs); - string ResolvePart2(string[] inputs); -} \ No newline at end of file diff --git a/AdventOfCode2020/Program.cs b/AdventOfCode2020/Program.cs index 4f45f54..6455077 100644 --- a/AdventOfCode2020/Program.cs +++ b/AdventOfCode2020/Program.cs @@ -1,65 +1,3 @@ -using System; -using System.IO; +global using AdventOfCode.Common; -namespace AdventOfCode2020; - -class Program -{ - static void Main() - { - int currentDayNumber = 0; - - DateTime date = DateTime.UtcNow.AddHours(-5); - if (date.Month == 12 && currentDayNumber == 0) - { - currentDayNumber = date.Day; - } - - RunDay(currentDayNumber); - - Console.Read(); - } - - public static void RunDay(int currentDayNumber) - { - Console.WriteLine($"Day {currentDayNumber:00}"); - Console.WriteLine("------"); - Console.WriteLine(); - - IDay currentDay = null; - Type dayType = Type.GetType($"AdventOfCode2020.Day{currentDayNumber:00}"); - if (dayType != null) - { - currentDay = Activator.CreateInstance(dayType) as IDay; - } - if (currentDay == null) - { - Console.WriteLine("!!!!!!!"); - Console.WriteLine("Day implementation not found."); - return; - } - - string[] linesDay = File.ReadAllLines($"inputs/Day{currentDayNumber:00}.txt"); - try - { - string resultPart1 = currentDay.ResolvePart1(linesDay); - Console.WriteLine("Day{1:00} Result Part1: {0}", resultPart1, currentDayNumber); - } - catch (Exception ex) - { - Console.WriteLine(ex.Message); - Console.WriteLine(ex.StackTrace); - } - try - { - string resultPart2 = currentDay.ResolvePart2(linesDay); - Console.WriteLine("Day{1:00} Result Part2: {0}", resultPart2, currentDayNumber); - } - catch (Exception ex) - { - Console.WriteLine("!!!!!!!"); - Console.WriteLine(ex.Message); - Console.WriteLine(ex.StackTrace); - } - } -} \ No newline at end of file +DayHelper.RunDay("AdventOfCode2020", 2); \ No newline at end of file diff --git a/AdventOfCode2023/AdventOfCode2023.csproj b/AdventOfCode2023/AdventOfCode2023.csproj index 58188c5..977755f 100644 --- a/AdventOfCode2023/AdventOfCode2023.csproj +++ b/AdventOfCode2023/AdventOfCode2023.csproj @@ -8,4 +8,14 @@ AdventOfCode2023 + + + PreserveNewest + + + + + + + diff --git a/AdventOfCode2023/Program.cs b/AdventOfCode2023/Program.cs index 84d47e6..40c632e 100644 --- a/AdventOfCode2023/Program.cs +++ b/AdventOfCode2023/Program.cs @@ -1 +1,3 @@ -DayHelper.RunDay(2); \ No newline at end of file +global using AdventOfCode.Common; + +DayHelper.RunDay("AdventOfCode2023", 2); \ No newline at end of file diff --git a/AdventOfCode2023/Usings.cs b/AdventOfCode2023/Usings.cs deleted file mode 100644 index f0a9810..0000000 --- a/AdventOfCode2023/Usings.cs +++ /dev/null @@ -1 +0,0 @@ -global using AdventOfCode2023; \ No newline at end of file