moved code, started new core lib for main used items like string manipulation and data reading/parsing
This commit is contained in:
parent
bc39465ce5
commit
27247c645e
@ -2,7 +2,7 @@
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<RootNamespace>AdventOFCodeRunner</RootNamespace>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
using System.Text;
|
||||
|
||||
using AdventOfCodeLibrary._2023;
|
||||
using AdventOfCodeLibrary.Shared;
|
||||
using AdventOfCode.Core.Shared;
|
||||
|
||||
string _demoData = @"Game 1: 3 blue, 4 red; 1 red, 2 green, 6 blue; 2 green
|
||||
Game 2: 1 blue, 2 green; 3 green, 4 blue, 1 red; 1 green, 1 blue
|
||||
@ -10,6 +10,9 @@ Game 4: 1 green, 3 red, 6 blue; 3 green, 6 red; 3 green, 15 blue, 14 red
|
||||
Game 5: 6 red, 1 blue, 3 green; 2 blue, 1 red, 2 green";
|
||||
|
||||
Answerable answerable = new Day02Part2();
|
||||
|
||||
//FileStream stream = new FileStream(answerable.DefaultInputFile, new FileStreamOptions { Mode = FileMode.Open, Access = FileAccess.Read, Options = FileOptions.Asynchronous });
|
||||
|
||||
byte[] dataArray = File.ReadAllBytes(answerable.DefaultInputFile);
|
||||
//dataArray = Encoding.UTF8.GetBytes(_demoData);
|
||||
|
||||
|
||||
@ -1,6 +1,5 @@
|
||||
namespace AdventOfCodeLibrary._2022
|
||||
namespace AdventOfCode.Solutions._2022
|
||||
{
|
||||
using AdventOfCodeLibrary.Shared;
|
||||
|
||||
public class Day01Part1 : Answerable
|
||||
{
|
||||
|
||||
@ -1,7 +1,5 @@
|
||||
namespace AdventOfCodeLibrary._2022
|
||||
namespace AdventOfCode.Solutions._2022
|
||||
{
|
||||
using AdventOfCodeLibrary.Shared;
|
||||
|
||||
public class Day01Part2 : Answerable
|
||||
{
|
||||
public override int Year { get; set; } = 2022;
|
||||
|
||||
@ -1,8 +1,7 @@
|
||||
namespace AdventOfCodeLibrary._2022
|
||||
{
|
||||
using AdventOfCodeLibrary._2022.Day02;
|
||||
using AdventOfCodeLibrary.Shared;
|
||||
using AdventOfCode.Solutions._2022.Day02;
|
||||
|
||||
namespace AdventOfCode.Solutions._2022
|
||||
{
|
||||
public class Day02Part1 : Answerable
|
||||
{
|
||||
public override int Year { get; set; } = 2022;
|
||||
|
||||
@ -1,8 +1,7 @@
|
||||
namespace AdventOfCodeLibrary._2022
|
||||
{
|
||||
using AdventOfCodeLibrary._2022.Day02;
|
||||
using AdventOfCodeLibrary.Shared;
|
||||
using AdventOfCode.Solutions._2022.Day02;
|
||||
|
||||
namespace AdventOfCode.Solutions._2022
|
||||
{
|
||||
public class Day02Part2 : Answerable
|
||||
{
|
||||
public override int Year { get; set; } = 2022;
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
namespace AdventOfCodeLibrary._2022.Day02
|
||||
namespace AdventOfCode.Solutions._2022.Day02
|
||||
{
|
||||
internal class GameRules
|
||||
{
|
||||
|
||||
@ -1,7 +1,5 @@
|
||||
namespace AdventOfCodeLibrary._2022
|
||||
namespace AdventOfCode.Solutions._2022
|
||||
{
|
||||
using AdventOfCodeLibrary.Shared;
|
||||
|
||||
public class Day03Part1 : Answerable
|
||||
{
|
||||
public override int Year { get; set; } = 2022;
|
||||
|
||||
@ -1,7 +1,5 @@
|
||||
namespace AdventOfCodeLibrary._2022
|
||||
namespace AdventOfCode.Solutions._2022
|
||||
{
|
||||
using AdventOfCodeLibrary.Shared;
|
||||
|
||||
public class Day03Part2 : Answerable
|
||||
{
|
||||
public override int Year { get; set; } = 2022;
|
||||
|
||||
@ -1,7 +1,5 @@
|
||||
namespace AdventOfCodeLibrary._2022
|
||||
namespace AdventOfCode.Solutions._2022
|
||||
{
|
||||
using AdventOfCodeLibrary.Shared;
|
||||
|
||||
public class Day04Part1 : Answerable
|
||||
{
|
||||
public override int Year { get; set; } = 2022;
|
||||
|
||||
@ -1,7 +1,5 @@
|
||||
namespace AdventOfCodeLibrary._2022
|
||||
namespace AdventOfCode.Solutions._2022
|
||||
{
|
||||
using AdventOfCodeLibrary.Shared;
|
||||
|
||||
public class Day04Part2 : Answerable
|
||||
{
|
||||
public override int Year { get; set; } = 2022;
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
namespace AdventOfCodeLibrary._2022.Day_05
|
||||
namespace AdventOfCode.Solutions._2022.Day_05
|
||||
{
|
||||
internal class CraneWork
|
||||
{
|
||||
|
||||
@ -1,8 +1,7 @@
|
||||
namespace AdventOfCodeLibrary._2022
|
||||
{
|
||||
using AdventOfCodeLibrary._2022.Day_05;
|
||||
using AdventOfCodeLibrary.Shared;
|
||||
using AdventOfCode.Solutions._2022.Day_05;
|
||||
|
||||
namespace AdventOfCode.Solutions._2022
|
||||
{
|
||||
public class Day05Part1 : Answerable
|
||||
{
|
||||
public override int Year { get; set; } = 2022;
|
||||
|
||||
@ -1,8 +1,7 @@
|
||||
namespace AdventOfCodeLibrary._2022
|
||||
{
|
||||
using AdventOfCodeLibrary._2022.Day_05;
|
||||
using AdventOfCodeLibrary.Shared;
|
||||
using AdventOfCode.Solutions._2022.Day_05;
|
||||
|
||||
namespace AdventOfCode.Solutions._2022
|
||||
{
|
||||
public class Day05Part2 : Answerable
|
||||
{
|
||||
public override int Year { get; set; } = 2022;
|
||||
|
||||
@ -1,7 +1,5 @@
|
||||
namespace AdventOfCodeLibrary._2022
|
||||
namespace AdventOfCode.Solutions._2022
|
||||
{
|
||||
using AdventOfCodeLibrary.Shared;
|
||||
|
||||
public class Day06Part1 : Answerable
|
||||
{
|
||||
public override int Year { get; set; } = 2022;
|
||||
|
||||
@ -1,7 +1,5 @@
|
||||
namespace AdventOfCodeLibrary._2022
|
||||
namespace AdventOfCode.Solutions._2022
|
||||
{
|
||||
using AdventOfCodeLibrary.Shared;
|
||||
|
||||
public class Day06Part2 : Answerable
|
||||
{
|
||||
public override int Year { get; set; } = 2022;
|
||||
|
||||
@ -1,8 +1,7 @@
|
||||
namespace AdventOfCodeLibrary._2022
|
||||
{
|
||||
using AdventOfCodeLibrary._2022.Day_07;
|
||||
using AdventOfCodeLibrary.Shared;
|
||||
using AdventOfCode.Solutions._2022.Day_07;
|
||||
|
||||
namespace AdventOfCode.Solutions._2022
|
||||
{
|
||||
public class Day07Part1 : Answerable
|
||||
{
|
||||
public override int Year { get; set; } = 2022;
|
||||
|
||||
@ -1,8 +1,7 @@
|
||||
namespace AdventOfCodeLibrary._2022
|
||||
{
|
||||
using AdventOfCodeLibrary._2022.Day_07;
|
||||
using AdventOfCodeLibrary.Shared;
|
||||
using AdventOfCode.Solutions._2022.Day_07;
|
||||
|
||||
namespace AdventOfCode.Solutions._2022
|
||||
{
|
||||
public class Day07Part2 : Answerable
|
||||
{
|
||||
public override int Year { get; set; } = 2022;
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
namespace AdventOfCodeLibrary._2022.Day_07
|
||||
namespace AdventOfCode.Solutions._2022.Day_07
|
||||
{
|
||||
public class Directory
|
||||
{
|
||||
|
||||
@ -1,7 +1,5 @@
|
||||
namespace AdventOfCodeLibrary._2022
|
||||
namespace AdventOfCode.Solutions._2022
|
||||
{
|
||||
using AdventOfCodeLibrary.Shared;
|
||||
|
||||
public class Day08Part1 : Answerable
|
||||
{
|
||||
public override int Year { get; set; } = 2022;
|
||||
|
||||
@ -1,7 +1,5 @@
|
||||
namespace AdventOfCodeLibrary._2022
|
||||
namespace AdventOfCode.Solutions._2022
|
||||
{
|
||||
using AdventOfCodeLibrary.Shared;
|
||||
|
||||
public class Day08Part2 : Answerable
|
||||
{
|
||||
public override int Year { get; set; } = 2022;
|
||||
|
||||
@ -1,8 +1,7 @@
|
||||
namespace AdventOfCodeLibrary._2022
|
||||
{
|
||||
using AdventOfCodeLibrary._2022.Day_09;
|
||||
using AdventOfCodeLibrary.Shared;
|
||||
using AdventOfCode.Solutions._2022.Day_09;
|
||||
|
||||
namespace AdventOfCode.Solutions._2022
|
||||
{
|
||||
public class Day09Part1 : Answerable
|
||||
{
|
||||
public override int Year { get; set; } = 2022;
|
||||
|
||||
@ -1,8 +1,7 @@
|
||||
namespace AdventOfCodeLibrary._2022
|
||||
{
|
||||
using AdventOfCodeLibrary._2022.Day_09;
|
||||
using AdventOfCodeLibrary.Shared;
|
||||
using AdventOfCode.Solutions._2022.Day_09;
|
||||
|
||||
namespace AdventOfCode.Solutions._2022
|
||||
{
|
||||
public class Day09Part2 : Answerable
|
||||
{
|
||||
public override int Year { get; set; } = 2022;
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
namespace AdventOfCodeLibrary._2022.Day_09
|
||||
namespace AdventOfCode.Solutions._2022.Day_09
|
||||
{
|
||||
internal class VirtualPoint
|
||||
{
|
||||
|
||||
@ -1,7 +1,5 @@
|
||||
namespace AdventOfCodeLibrary._2022
|
||||
namespace AdventOfCode.Solutions._2022
|
||||
{
|
||||
using AdventOfCodeLibrary.Shared;
|
||||
|
||||
public class Day10Part1 : Answerable
|
||||
{
|
||||
public override int Year { get; set; } = 2022;
|
||||
|
||||
@ -1,7 +1,5 @@
|
||||
namespace AdventOfCodeLibrary._2022
|
||||
namespace AdventOfCode.Solutions._2022
|
||||
{
|
||||
using AdventOfCodeLibrary.Shared;
|
||||
|
||||
public class Day10Part2 : Answerable
|
||||
{
|
||||
public override int Year { get; set; } = 2022;
|
||||
|
||||
@ -1,8 +1,7 @@
|
||||
namespace AdventOfCodeLibrary._2022
|
||||
{
|
||||
using AdventOfCodeLibrary._2022.Day_11;
|
||||
using AdventOfCodeLibrary.Shared;
|
||||
using AdventOfCode.Solutions._2022.Day_11;
|
||||
|
||||
namespace AdventOfCode.Solutions._2022
|
||||
{
|
||||
public class Day11Part1 : Answerable
|
||||
{
|
||||
public override int Year { get; set; } = 2022;
|
||||
|
||||
@ -1,8 +1,7 @@
|
||||
namespace AdventOfCodeLibrary._2022
|
||||
{
|
||||
using AdventOfCodeLibrary._2022.Day_11;
|
||||
using AdventOfCodeLibrary.Shared;
|
||||
using AdventOfCode.Solutions._2022.Day_11;
|
||||
|
||||
namespace AdventOfCode.Solutions._2022
|
||||
{
|
||||
public class Day11Part2 : Answerable
|
||||
{
|
||||
public override int Year { get; set; } = 2022;
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
namespace AdventOfCodeLibrary._2022.Day_11
|
||||
namespace AdventOfCode.Solutions._2022.Day_11
|
||||
{
|
||||
internal class Monkey
|
||||
{
|
||||
|
||||
@ -1,7 +1,5 @@
|
||||
namespace AdventOfCodeLibrary._2022
|
||||
namespace AdventOfCode.Solutions._2022
|
||||
{
|
||||
using AdventOfCodeLibrary.Shared;
|
||||
|
||||
public class Day12Part1 : Answerable
|
||||
{
|
||||
public override int Year { get; set; } = 2022;
|
||||
|
||||
@ -1,7 +1,5 @@
|
||||
namespace AdventOfCodeLibrary._2022
|
||||
namespace AdventOfCode.Solutions._2022
|
||||
{
|
||||
using AdventOfCodeLibrary.Shared;
|
||||
|
||||
public class Day12Part2 : Answerable
|
||||
{
|
||||
public override int Year { get; set; } = 2022;
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
namespace AdventOfCodeLibrary._2022.Day_12
|
||||
namespace AdventOfCode.Solutions._2022.Day_12
|
||||
{
|
||||
internal class Map
|
||||
{
|
||||
|
||||
@ -1,9 +1,8 @@
|
||||
namespace AdventOfCodeLibrary._2023
|
||||
{
|
||||
using AdventOfCodeLibrary.Shared;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Text.RegularExpressions;
|
||||
|
||||
public class Day01Part1 : Answerable
|
||||
namespace AdventOfCode.Solutions._2023
|
||||
{
|
||||
public class Day01Part1 : Answerable
|
||||
{
|
||||
public override int Year { get; set; } = 2023;
|
||||
public override int Day { get; set; } = 1;
|
||||
|
||||
@ -1,8 +1,7 @@
|
||||
namespace AdventOfCodeLibrary._2023
|
||||
{
|
||||
using AdventOfCodeLibrary.Shared;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Text.RegularExpressions;
|
||||
|
||||
namespace AdventOfCode.Solutions._2023
|
||||
{
|
||||
public class Day01Part2 : Answerable
|
||||
{
|
||||
public override int Year { get; set; } = 2023;
|
||||
|
||||
@ -1,8 +1,7 @@
|
||||
namespace AdventOfCodeLibrary._2023
|
||||
{
|
||||
using AdventOfCodeLibrary.Shared;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Text.RegularExpressions;
|
||||
|
||||
namespace AdventOfCode.Solutions._2023
|
||||
{
|
||||
public class Day02Part1 : Answerable
|
||||
{
|
||||
public override int Year { get; set; } = 2023;
|
||||
|
||||
@ -1,8 +1,7 @@
|
||||
namespace AdventOfCodeLibrary._2023
|
||||
{
|
||||
using AdventOfCodeLibrary.Shared;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Text.RegularExpressions;
|
||||
|
||||
namespace AdventOfCode.Solutions._2023
|
||||
{
|
||||
public class Day02Part2 : Answerable
|
||||
{
|
||||
public override int Year { get; set; } = 2023;
|
||||
|
||||
@ -1,10 +1,14 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<RootNamespace>AdventOfCodeLibrary</RootNamespace>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<RootNamespace>AdventOfCode.Solutions</RootNamespace>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\AdventOfCode.Code\AdventOfCode.Core.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
||||
1
Advent Of Code Library/Usings.cs
Normal file
1
Advent Of Code Library/Usings.cs
Normal file
@ -0,0 +1 @@
|
||||
global using AdventOfCode.Core.Shared;
|
||||
@ -5,7 +5,9 @@ VisualStudioVersion = 17.4.33103.184
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AdventOfCode.Runner", "Advend Of Code Runner\AdventOfCode.Runner.csproj", "{6DCDC513-AF72-4029-932A-A0079BB5422B}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AdventOfCode.Library", "Advent Of Code Library\AdventOfCode.Library.csproj", "{33CC3924-F18E-4B88-9989-A7A9077B9AC4}"
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AdventOfCode.Solutions", "Advent Of Code Library\AdventOfCode.Solutions.csproj", "{33CC3924-F18E-4B88-9989-A7A9077B9AC4}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AdventOfCode.Core", "AdventOfCode.Code\AdventOfCode.Core.csproj", "{49EFF2F1-A5AD-448F-92EE-8CC95B2CECC2}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
@ -21,6 +23,10 @@ Global
|
||||
{33CC3924-F18E-4B88-9989-A7A9077B9AC4}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{33CC3924-F18E-4B88-9989-A7A9077B9AC4}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{33CC3924-F18E-4B88-9989-A7A9077B9AC4}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{49EFF2F1-A5AD-448F-92EE-8CC95B2CECC2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{49EFF2F1-A5AD-448F-92EE-8CC95B2CECC2}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{49EFF2F1-A5AD-448F-92EE-8CC95B2CECC2}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{49EFF2F1-A5AD-448F-92EE-8CC95B2CECC2}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
||||
9
AdventOfCode.Code/AdventOfCode.Core.csproj
Normal file
9
AdventOfCode.Code/AdventOfCode.Core.csproj
Normal file
@ -0,0 +1,9 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
52
AdventOfCode.Code/InputReader.cs
Normal file
52
AdventOfCode.Code/InputReader.cs
Normal file
@ -0,0 +1,52 @@
|
||||
using System.Runtime.InteropServices.Marshalling;
|
||||
|
||||
namespace AdventOfCode.Core
|
||||
{
|
||||
public class InputReader
|
||||
{
|
||||
private readonly string InputFileTemplate = "../../../../Advent Of Code Library/{1}/Day {2:00}/day-{2:00}-input.txt";
|
||||
private int Day { get; set; }
|
||||
private int Year { get; set; }
|
||||
private string InputFilePath => string.Format(InputFileTemplate, Year, Day);
|
||||
|
||||
public void SetInputByChallange()
|
||||
{
|
||||
SetInputByChallange(DateTime.Now.Day, DateTime.Now.Year);
|
||||
}
|
||||
|
||||
public void SetInputByChallange(int day)
|
||||
{
|
||||
SetInputByChallange(day, DateTime.Now.Year);
|
||||
}
|
||||
|
||||
public void SetInputByChallange(int day, int year)
|
||||
{
|
||||
Day = day;
|
||||
Year = year;
|
||||
}
|
||||
|
||||
public async Task<string> ReadAsString() => await File.ReadAllTextAsync(InputFilePath);
|
||||
|
||||
public async IAsyncEnumerable<string> ReadAsStringLine()
|
||||
{
|
||||
using StreamReader reader = new(InputFilePath);
|
||||
while (!reader.EndOfStream)
|
||||
{
|
||||
yield return (await reader.ReadLineAsync()) ?? string.Empty;
|
||||
}
|
||||
}
|
||||
|
||||
public async IAsyncEnumerable<T> ReadAsStringLine<T>(T emptyLineIndicator)
|
||||
{
|
||||
using StreamReader reader = new(InputFilePath);
|
||||
while (!reader.EndOfStream)
|
||||
{
|
||||
string line = (await reader.ReadLineAsync()) ?? string.Empty;
|
||||
if (string.IsNullOrWhiteSpace(line))
|
||||
yield return emptyLineIndicator;
|
||||
else
|
||||
yield return (T)Convert.ChangeType(line, typeof(T));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,4 +1,4 @@
|
||||
namespace AdventOfCodeLibrary.Shared.A_Star
|
||||
namespace AdventOfCode.Core.Shared.A_Star
|
||||
{
|
||||
public class AStarGrid : Grid<AStarNode>
|
||||
{
|
||||
@ -1,4 +1,4 @@
|
||||
namespace AdventOfCodeLibrary.Shared.A_Star
|
||||
namespace AdventOfCode.Core.Shared.A_Star
|
||||
{
|
||||
public class AStarNode : Node
|
||||
{
|
||||
@ -1,6 +1,6 @@
|
||||
using System.Text;
|
||||
|
||||
namespace AdventOfCodeLibrary.Shared
|
||||
namespace AdventOfCode.Core.Shared
|
||||
{
|
||||
using System.Text.RegularExpressions;
|
||||
|
||||
@ -18,9 +18,9 @@ namespace AdventOfCodeLibrary.Shared
|
||||
|
||||
public abstract string GetAnswer(byte[] data);
|
||||
|
||||
internal static string GetAsString(byte[] bytes) => Encoding.UTF8.GetString(bytes).ReplaceLineEndings();
|
||||
public static string GetAsString(byte[] bytes) => Encoding.UTF8.GetString(bytes).ReplaceLineEndings();
|
||||
|
||||
internal static string[] GetAsStringArray(byte[] bytes) => GetAsString(bytes).Split(NewLine).ToArray();
|
||||
public static string[] GetAsStringArray(byte[] bytes) => GetAsString(bytes).Split(NewLine).ToArray();
|
||||
|
||||
private static string StripControlChars(string s)
|
||||
{
|
||||
@ -1,6 +1,6 @@
|
||||
using System.Reflection;
|
||||
|
||||
namespace AdventOfCodeLibrary.Shared
|
||||
namespace AdventOfCode.Core.Shared
|
||||
{
|
||||
public class AnswerableListBuilder
|
||||
{
|
||||
@ -1,6 +1,6 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace AdventOfCodeLibrary.Shared
|
||||
namespace AdventOfCode.Core.Shared
|
||||
{
|
||||
public class Grid<T> where T : Node
|
||||
{
|
||||
@ -1,4 +1,4 @@
|
||||
namespace AdventOfCodeLibrary.Shared
|
||||
namespace AdventOfCode.Core.Shared
|
||||
{
|
||||
public class Node
|
||||
{
|
||||
Loading…
Reference in New Issue
Block a user