seal classes
continuous-integration/drone/push Build is failing Details

This commit is contained in:
Ben Harris 2020-12-01 23:50:35 -05:00
parent 9958bed832
commit 00c3b51b89
Signed by: ben
GPG Key ID: 4E0AF802FFF7960C
18 changed files with 37 additions and 83 deletions

View File

@ -3,7 +3,7 @@ using System.Linq;
namespace aoc2019
{
public class Day1 : Day
internal sealed class Day1 : Day
{
public override int DayNumber => 1;

View File

@ -5,7 +5,7 @@ using System.Linq;
namespace aoc2019
{
internal class Day10 : Day
internal sealed class Day10 : Day
{
public override int DayNumber => 10;

View File

@ -5,7 +5,7 @@ using System.Linq;
namespace aoc2019
{
internal class Day11 : Day
internal sealed class Day11 : Day
{
public override int DayNumber => 11;

View File

@ -5,7 +5,7 @@ using System.Linq;
namespace aoc2019
{
internal class Day12 : Day
internal sealed class Day12 : Day
{
public override int DayNumber => 12;

View File

@ -5,7 +5,7 @@ using System.Linq;
namespace aoc2019
{
internal class Day13 : Day
internal sealed class Day13 : Day
{
public override int DayNumber => 13;

View File

@ -4,7 +4,7 @@ using System.Linq;
namespace aoc2019
{
internal class Day14 : Day
internal sealed class Day14 : Day
{
public override int DayNumber => 14;
@ -19,10 +19,10 @@ namespace aoc2019
private class Reaction
{
public Component product;
public Component[] reactants;
public readonly Component product;
public readonly Component[] reactants;
public Reaction(Component[] reactants, Component product)
private Reaction(Component[] reactants, Component product)
{
this.reactants = reactants;
this.product = product;
@ -39,11 +39,11 @@ namespace aoc2019
static Component ParseComponent(string s)
{
var i = s.IndexOf(' ');
var spl = s.Split(' ', 2);
return new Component
{
Name = s[(i + 1)..],
Quantity = int.Parse(s.Substring(i))
Quantity = int.Parse(spl[0]),
Name = spl[1]
};
}
}

View File

@ -4,7 +4,7 @@ using System.Linq;
namespace aoc2019
{
internal class Day15 : Day
internal sealed class Day15 : Day
{
public override int DayNumber => 15;

View File

@ -4,7 +4,7 @@ using System.Linq;
namespace aoc2019
{
internal class Day16 : Day
internal sealed class Day16 : Day
{
public override int DayNumber => 16;

View File

@ -3,7 +3,7 @@ using System.Linq;
namespace aoc2019
{
public class Day2 : Day
internal sealed class Day2 : Day
{
public override int DayNumber => 2;

View File

@ -4,7 +4,7 @@ using System.Linq;
namespace aoc2019
{
internal class Day3 : Day
internal sealed class Day3 : Day
{
public override int DayNumber => 3;

View File

@ -2,7 +2,7 @@
namespace aoc2019
{
internal class Day4 : Day
internal sealed class Day4 : Day
{
public override int DayNumber => 4;

View File

@ -3,7 +3,7 @@ using System.Linq;
namespace aoc2019
{
internal class Day5 : Day
internal sealed class Day5 : Day
{
public override int DayNumber => 5;

View File

@ -3,7 +3,7 @@ using System.Linq;
namespace aoc2019
{
internal class Day6 : Day
internal sealed class Day6 : Day
{
public override int DayNumber => 6;

View File

@ -4,7 +4,7 @@ using System.Linq;
namespace aoc2019
{
internal class Day7 : Day
internal sealed class Day7 : Day
{
public override int DayNumber => 7;

View File

@ -5,7 +5,7 @@ using System.Linq;
namespace aoc2019
{
internal class Day8 : Day
internal sealed class Day8 : Day
{
public override int DayNumber => 8;

View File

@ -3,7 +3,7 @@ using System.Linq;
namespace aoc2019
{
internal class Day9 : Day
internal sealed class Day9 : Day
{
public override int DayNumber => 9;
private readonly IntCodeVM vm;

View File

@ -5,19 +5,24 @@ using System.Reflection;
namespace aoc2019
{
class Program
internal static class Program
{
static void Main(string[] args)
private static void Main(string[] args)
{
var days = GetDays();
var days =
Assembly.GetExecutingAssembly().GetTypes()
.Where(t => t.BaseType == typeof(Day))
.Select(t => (Day) Activator.CreateInstance(t))
.OrderBy(d => d.DayNumber);
if (args.Length == 1 && int.TryParse(args[0], out int daynum))
if (args.Length == 1 && int.TryParse(args[0], out var dayNum))
{
var d = days.Where(d => d.DayNumber == daynum);
if (d.Any())
d.First().AllParts();
var day = days.FirstOrDefault(d => d.DayNumber == dayNum);
if (day != null)
day.AllParts();
else
Console.WriteLine($"{daynum} invalid or not yet implemented");
Console.WriteLine($"{dayNum} invalid or not yet implemented");
}
else
{
@ -27,11 +32,5 @@ namespace aoc2019
}
}
}
private static IEnumerable<Day> GetDays() =>
Assembly.GetExecutingAssembly().GetTypes()
.Where(t => t.BaseType == typeof(Day))
.Select(t => (Day)Activator.CreateInstance(t))
.OrderBy(d => d.DayNumber);
}
}

View File

@ -2,56 +2,11 @@
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.0</TargetFramework>
<TargetFramework>net5.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<None Update="input\day1.in">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="input\day11.in">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="input\day12.in">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="input\day13.in">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="input\day14.in">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="input\day15.in">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="input\day16.in">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="input\day2.in">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="input\day3.in">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="input\day4.in">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="input\day5.in">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="input\day6.in">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="input\day7.in">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="input\day8.in">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="input\day9.in">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="input\day10.in">
<None Update="input\day*.in">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>