implement level1 and level2
This commit is contained in:
14
Common/Common.csproj
Normal file
14
Common/Common.csproj
Normal file
@@ -0,0 +1,14 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net9.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="LevelInputProvider" Version="*" />
|
||||
<PackageReference Include="TextParser" Version="*" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
37
Common/LevelSolverBase.cs
Normal file
37
Common/LevelSolverBase.cs
Normal file
@@ -0,0 +1,37 @@
|
||||
namespace AoC24.Common;
|
||||
|
||||
using AoCLevelInputProvider;
|
||||
using Parsing;
|
||||
using Parsing.Schema;
|
||||
using Parsing.Tokenization;
|
||||
|
||||
public abstract class LevelSolverBase
|
||||
{
|
||||
public abstract int LevelNumber { get; }
|
||||
private int Year = 2024;
|
||||
private LevelInputProvider inputProvider = new LevelInputProvider();
|
||||
|
||||
protected string GetLevelInput()
|
||||
{
|
||||
return inputProvider.WithYear(this.Year).WithLevel(this.LevelNumber).Provide();
|
||||
}
|
||||
|
||||
public abstract string SolveFirstStar();
|
||||
|
||||
public abstract string SolveSecondStar();
|
||||
|
||||
protected abstract InputSchemaBuilder DefineInputSchema(InputSchemaBuilder schemaBuilder);
|
||||
|
||||
public TokenConverter GetData()
|
||||
{
|
||||
var schemaBuilder = new InputSchemaBuilder();
|
||||
var schema = this.DefineInputSchema(schemaBuilder).Build();
|
||||
|
||||
var parser = new TextParser(schema);
|
||||
var data = parser
|
||||
.SetInputText(this.GetLevelInput())
|
||||
.Parse();
|
||||
|
||||
return data;
|
||||
}
|
||||
}
|
||||
3096
Common/msbuild.log
Normal file
3096
Common/msbuild.log
Normal file
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user