My personal solution for the Advent of Code puzzle 2021.
I do not put focus on speed. I just wanted to solve the tasks and have some fun :-)
To solve the puzzles I use the project template AoCHelper from eduherminio (https://github.com/eduherminio/AdventOfCode.Template).
Greetings for the great template!
Advent of Code template based on AoCHelper project.
It allows you to focus on solving AoC puzzles while providing you with some performance stats.
Problem example:
using AoCHelper;
using System.Threading.Tasks;
namespace AdventOfCode
{
public class Day_01 : BaseDay
{
public override ValueTask<string> Solve_1() => new("Solution 1");
public override ValueTask<string> Solve_2() => new("Solution 2");
}
}
Output example:
- Create one class per advent day, following
DayXX
orDay_XX
naming convention and implementingAoCHelper.BaseDay
. - Place input files under
Inputs/
dir, followingXX.txt
convention. - Read the input content from
InputFilePath
and solve the puzzle by implementingSolve_1()
andSolve_2()
!
By default, only your last problem will be solved when running the project. You can change that by behavior by modifying Program.cs
.
Invoking different methods:
-
Solver.SolveAll();
→ solves all the days. -
Solver.SolveLast();
→ solves only the last day. -
Solver.Solve<Day_XX>();
→ solves only dayXX
. -
Solver.Solve(new uint[] { XX, YY });
→ solves only daysXX
andYY
. -
Solver.Solve(new [] { typeof(Day_XX), typeof(Day_YY) });
→ same as above.
Providing a custom SolverConfiguration
instance to any of those methods (availabe options described here):
-
Solver.SolveLast(new SolverConfiguration() { ClearConsole = false } );
→ solves only the last day providing a custom configuration. -
Solver.SolveAll(new SolverConfiguration() { ElapsedTimeFormatSpecifier = "F3" } );
→ solves all the days providing a custom configuration.
Check AoCHelper README file for detailed information about how to override the default file naming and location conventions of your problem classes and input files.