cleanup of old code finsihed day 2
parent
74fa2da997
commit
8c91d6e206
|
@ -4,6 +4,6 @@
|
||||||
<DebuggerFlavor>ProjectDebugger</DebuggerFlavor>
|
<DebuggerFlavor>ProjectDebugger</DebuggerFlavor>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<ActiveDebugProfile>WithoutParams</ActiveDebugProfile>
|
<ActiveDebugProfile>WithParams</ActiveDebugProfile>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
</Project>
|
</Project>
|
|
@ -1,7 +1,5 @@
|
||||||
using AOC2022.Puzzles;
|
using AOC2022.Puzzles;
|
||||||
|
|
||||||
using System.Linq.Expressions;
|
|
||||||
|
|
||||||
namespace AOC2022;
|
namespace AOC2022;
|
||||||
|
|
||||||
internal static class Program
|
internal static class Program
|
||||||
|
@ -37,11 +35,9 @@ internal static class Program
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
daysToProcess.Add(dayNumber);
|
daysToProcess.Add(dayNumber);
|
||||||
|
|
||||||
}
|
}
|
||||||
ProcessDays(daysToProcess);
|
ProcessDays(daysToProcess);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
|
@ -63,6 +59,7 @@ internal static class Program
|
||||||
{
|
{
|
||||||
if (Activator.CreateInstance(typeName, new object[] { linesInFile }) is IPuzzle puzzle)
|
if (Activator.CreateInstance(typeName, new object[] { linesInFile }) is IPuzzle puzzle)
|
||||||
{
|
{
|
||||||
|
Console.WriteLine($"Day {day} answers");
|
||||||
puzzle.FirstPuzzle();
|
puzzle.FirstPuzzle();
|
||||||
puzzle.SecondPuzzle();
|
puzzle.SecondPuzzle();
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,13 +2,12 @@
|
||||||
"profiles": {
|
"profiles": {
|
||||||
"WithParams": {
|
"WithParams": {
|
||||||
"commandName": "Project",
|
"commandName": "Project",
|
||||||
"commandLineArgs": "1 2 3"
|
"commandLineArgs": "1 2",
|
||||||
|
"workingDirectory": "./"
|
||||||
},
|
},
|
||||||
"WithoutParams": {
|
"WithoutParams": {
|
||||||
"commandName": "Project",
|
"commandName": "Project",
|
||||||
"workingDirectory": "./"
|
"workingDirectory": "./"
|
||||||
|
|
||||||
//"commandLineArgs": "1 2 3"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,31 +1,47 @@
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace AOC2022.Puzzles;
|
namespace AOC2022.Puzzles;
|
||||||
|
|
||||||
internal class Day1 : IPuzzle
|
internal class Day1 : IPuzzle
|
||||||
{
|
{
|
||||||
private readonly string[] linesFromFile;
|
private readonly string[] _linesFromFile;
|
||||||
|
private readonly List<int> _elfFoodSumList = new();
|
||||||
|
|
||||||
public Day1(string[] linesFromFile)
|
public Day1(string[] linesFromFile)
|
||||||
{
|
{
|
||||||
this.linesFromFile = linesFromFile;
|
_linesFromFile = linesFromFile;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
GetElfFoodSumList();
|
||||||
|
}
|
||||||
|
catch (Exception)
|
||||||
|
{
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
void GetElfFoodSumList()
|
||||||
|
{
|
||||||
|
var elfFoodSum = 0;
|
||||||
|
//var elfFoodSumList = new List<int>();
|
||||||
|
foreach (var line in _linesFromFile)
|
||||||
|
{
|
||||||
|
if (!string.IsNullOrWhiteSpace(line))
|
||||||
|
{
|
||||||
|
elfFoodSum += int.Parse(line);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_elfFoodSumList.Add(elfFoodSum);
|
||||||
|
elfFoodSum = 0;
|
||||||
|
}
|
||||||
|
_elfFoodSumList.Sort((x, y) => y.CompareTo(x));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void FirstPuzzle()
|
public void FirstPuzzle()
|
||||||
{
|
{
|
||||||
foreach (var line in linesFromFile)
|
Console.WriteLine($"Fattest fucker has {_elfFoodSumList[0]} borgers");
|
||||||
{
|
|
||||||
Console.WriteLine(line);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SecondPuzzle()
|
public void SecondPuzzle()
|
||||||
{
|
{
|
||||||
throw new NotImplementedException();
|
Console.WriteLine($"Top 3 Fatties have {_elfFoodSumList.Take(3).Sum()} borgers");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,21 +1,32 @@
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace AOC2022.Puzzles;
|
namespace AOC2022.Puzzles;
|
||||||
|
|
||||||
internal class Day2 : IPuzzle
|
internal class Day2 : IPuzzle
|
||||||
{
|
{
|
||||||
|
private readonly string[] _linesFromFile;
|
||||||
|
|
||||||
|
public Day2(string[] linesFromFile)
|
||||||
|
{
|
||||||
|
_linesFromFile = linesFromFile;
|
||||||
|
}
|
||||||
public void FirstPuzzle()
|
public void FirstPuzzle()
|
||||||
{
|
{
|
||||||
throw new NotImplementedException();
|
int score = 0;
|
||||||
|
|
||||||
|
foreach (var line in _linesFromFile)
|
||||||
|
{
|
||||||
|
score += ((line[2] - line[0] - 1) % 3 * 3) + (line[2] - 'X' + 1);
|
||||||
|
}
|
||||||
|
Console.WriteLine($"Elf trickery knows no bounds, without the elf the score is {score}");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SecondPuzzle()
|
public void SecondPuzzle()
|
||||||
{
|
{
|
||||||
throw new NotImplementedException();
|
int score = 0;
|
||||||
}
|
foreach (var line in _linesFromFile)
|
||||||
}
|
{
|
||||||
|
score += ((line[0] - 'A' + line[2] - 'X' + 2) % 3) + 1 + (line[2] - 'X') * 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
Console.WriteLine($"Elf trickery knows no bounds, with the elf help the score is {score}");
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,9 +1,3 @@
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace AOC2022.Puzzles;
|
namespace AOC2022.Puzzles;
|
||||||
|
|
||||||
internal class Day3 : IPuzzle
|
internal class Day3 : IPuzzle
|
||||||
|
|
|
@ -1,9 +1,3 @@
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace AOC2022.Puzzles
|
namespace AOC2022.Puzzles
|
||||||
{
|
{
|
||||||
internal interface IPuzzle
|
internal interface IPuzzle
|
||||||
|
|
|
@ -1,10 +0,0 @@
|
||||||
<Project Sdk="Microsoft.NET.Sdk">
|
|
||||||
|
|
||||||
<PropertyGroup>
|
|
||||||
<OutputType>Exe</OutputType>
|
|
||||||
<TargetFramework>net7.0</TargetFramework>
|
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
|
||||||
<Nullable>enable</Nullable>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
</Project>
|
|
|
@ -1,69 +0,0 @@
|
||||||
namespace AOCDayOne;
|
|
||||||
|
|
||||||
internal static class Program
|
|
||||||
{
|
|
||||||
private static async Task Main(string[] args)
|
|
||||||
{
|
|
||||||
switch (args.Length)
|
|
||||||
{
|
|
||||||
case 0:
|
|
||||||
Console.WriteLine("Nigga enter the filename!");
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
{
|
|
||||||
var result = await ProcessElfFoodListFile(args[0]);
|
|
||||||
if (result is not null)
|
|
||||||
{
|
|
||||||
Console.WriteLine($"Fattest fucker has {result[0]} borgers");
|
|
||||||
Console.WriteLine($"Top 3 Fatties have {result.Take(3).Sum()} borgers");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Console.WriteLine("Processing error/File not found");
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
default:
|
|
||||||
Console.WriteLine("I don't even know what the fuck you typed, just the filename as argument");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static async Task<List<int>?> ProcessElfFoodListFile(string filename)
|
|
||||||
{
|
|
||||||
//Set Current Directory in launchSettings.json or rider launch profiles
|
|
||||||
//var currentDirectory = Directory.GetCurrentDirectory();
|
|
||||||
if (!File.Exists(filename)) return null;
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
var lines = await File.ReadAllLinesAsync(filename); //no i dont care about memory poorcels out
|
|
||||||
var elfFoodSum = 0;
|
|
||||||
var elfFoodSumList = new List<int>();
|
|
||||||
foreach (var line in lines)
|
|
||||||
{
|
|
||||||
if (!string.IsNullOrWhiteSpace(line))
|
|
||||||
{
|
|
||||||
elfFoodSum += int.Parse(line);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
elfFoodSumList.Add(elfFoodSum);
|
|
||||||
elfFoodSum = 0;
|
|
||||||
}
|
|
||||||
elfFoodSumList.Sort((x, y) => y.CompareTo(x));
|
|
||||||
}
|
|
||||||
|
|
||||||
//elfFoodSumList.ForEach(Console.WriteLine);
|
|
||||||
//Console.WriteLine(elfFoodSumList.Count);
|
|
||||||
//Console.WriteLine(elfFoodSumList.Max());
|
|
||||||
return elfFoodSumList;
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
Console.WriteLine($"Shieeeeeeeetttt I Crashed!! coz of this {ex}");
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,9 +0,0 @@
|
||||||
{
|
|
||||||
"profiles": {
|
|
||||||
"InputTxtParam": {
|
|
||||||
"commandName": "Project",
|
|
||||||
"commandLineArgs": "input.txt",
|
|
||||||
"workingDirectory": ".\\"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -3,8 +3,6 @@ Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
# Visual Studio Version 17
|
# Visual Studio Version 17
|
||||||
VisualStudioVersion = 17.4.33122.133
|
VisualStudioVersion = 17.4.33122.133
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AOCDayOne", "AOCDayOne\AOCDayOne.csproj", "{9A5F75A3-4FD2-4CE1-9047-639AE19F86A1}"
|
|
||||||
EndProject
|
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{99F5AC62-C5E8-4264-A511-C2ED59988EDA}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{99F5AC62-C5E8-4264-A511-C2ED59988EDA}"
|
||||||
ProjectSection(SolutionItems) = preProject
|
ProjectSection(SolutionItems) = preProject
|
||||||
.editorconfig = .editorconfig
|
.editorconfig = .editorconfig
|
||||||
|
@ -18,10 +16,6 @@ Global
|
||||||
Release|Any CPU = Release|Any CPU
|
Release|Any CPU = Release|Any CPU
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
{9A5F75A3-4FD2-4CE1-9047-639AE19F86A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{9A5F75A3-4FD2-4CE1-9047-639AE19F86A1}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{9A5F75A3-4FD2-4CE1-9047-639AE19F86A1}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{9A5F75A3-4FD2-4CE1-9047-639AE19F86A1}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{E9B704DE-D6D2-4A72-971D-28E9F326B6EA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{E9B704DE-D6D2-4A72-971D-28E9F326B6EA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{E9B704DE-D6D2-4A72-971D-28E9F326B6EA}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{E9B704DE-D6D2-4A72-971D-28E9F326B6EA}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{E9B704DE-D6D2-4A72-971D-28E9F326B6EA}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{E9B704DE-D6D2-4A72-971D-28E9F326B6EA}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
|
Loading…
Reference in New Issue