diff --git a/Kalender.sln b/Kalender.sln new file mode 100644 index 0000000..c7d734e --- /dev/null +++ b/Kalender.sln @@ -0,0 +1,27 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.3.32929.385 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Kalender", "Kalender\Kalender.csproj", "{7F620304-6022-4939-A6D9-01A9BBC907A9}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Projektmappenelemente", "Projektmappenelemente", "{4955BCA5-D3BC-4562-BC34-070B7214820F}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {7F620304-6022-4939-A6D9-01A9BBC907A9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7F620304-6022-4939-A6D9-01A9BBC907A9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7F620304-6022-4939-A6D9-01A9BBC907A9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7F620304-6022-4939-A6D9-01A9BBC907A9}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {42F2B407-DB71-47A7-918C-B80AD8F0F273} + EndGlobalSection +EndGlobal diff --git a/Kalender/App.config b/Kalender/App.config new file mode 100644 index 0000000..56efbc7 --- /dev/null +++ b/Kalender/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Kalender/Kalender.csproj b/Kalender/Kalender.csproj new file mode 100644 index 0000000..ae4c1bf --- /dev/null +++ b/Kalender/Kalender.csproj @@ -0,0 +1,57 @@ + + + + + Debug + AnyCPU + {7F620304-6022-4939-A6D9-01A9BBC907A9} + Exe + Kalender + Kalender + v4.7.2 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Kalender/Program.cs b/Kalender/Program.cs new file mode 100644 index 0000000..627b01d --- /dev/null +++ b/Kalender/Program.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Kalender +{ + internal class Program + { + static void Main(string[] args) + { + day5.getMoveLine(); + Console.ReadKey(); + } + } +} diff --git a/Kalender/Properties/AssemblyInfo.cs b/Kalender/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..bd0f956 --- /dev/null +++ b/Kalender/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Allgemeine Informationen über eine Assembly werden über die folgenden +// Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern, +// die einer Assembly zugeordnet sind. +[assembly: AssemblyTitle("Kalender")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Kalender")] +[assembly: AssemblyCopyright("Copyright © 2022")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Durch Festlegen von ComVisible auf FALSE werden die Typen in dieser Assembly +// für COM-Komponenten unsichtbar. Wenn Sie auf einen Typ in dieser Assembly von +// COM aus zugreifen müssen, sollten Sie das ComVisible-Attribut für diesen Typ auf "True" festlegen. +[assembly: ComVisible(false)] + +// Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird +[assembly: Guid("7f620304-6022-4939-a6d9-01a9bbc907a9")] + +// Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten: +// +// Hauptversion +// Nebenversion +// Buildnummer +// Revision +// +// Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden, +// indem Sie "*" wie unten gezeigt eingeben: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Kalender/day1.cs b/Kalender/day1.cs new file mode 100644 index 0000000..1cc046e --- /dev/null +++ b/Kalender/day1.cs @@ -0,0 +1,56 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.IO; +using System.Linq; +using System.Runtime.InteropServices; +using System.Text; +using System.Threading.Tasks; + +namespace Kalender +{ + internal class day1 + { + static public void read() + { + string file = "./../../../../day1.txt"; + string text = File.ReadAllText(file); + string[] lines = text.Split( + new string[] { Environment.NewLine }, + StringSplitOptions.None); + List count = new List(); + int counter = 0; + foreach (string line in lines) + { + + if(line.Length != 0) + { + counter += Convert.ToInt32(line); + } + else + { + count.Add(counter); + counter = 0; + } + } + count.Sort(); + foreach(int number in count) + { + // Console.WriteLine($"{number}"); + } + + counter = 0; + count.Reverse(); + for (int i = 0; i < 3; i++) + { + counter += count[i]; + } + + Console.WriteLine(counter); + } + + + } + + } + diff --git a/Kalender/day2.cs b/Kalender/day2.cs new file mode 100644 index 0000000..b3307a5 --- /dev/null +++ b/Kalender/day2.cs @@ -0,0 +1,181 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Kalender +{ + /*A = Stein, B = Papier, C = Schere + X = Stein, Y = Papier, Z = Schere + Stein = 1, Papier = 2, Schere = 3 + 3 Unentschieden, 6 Sieg*/ + internal class day2 + { + static int counter = 0; + static string[] lines; + static public void day_2_einlesen() + { + string file = "./../../../../day2.txt"; + string text = File.ReadAllText(file); + lines = text.Split( + new string[] { Environment.NewLine }, + StringSplitOptions.None); + } + + static public void day2_partOne() + { + day_2_einlesen(); + foreach (string line in lines) + { + string ausgang = ""; + + if (line[0] == 'A' && line[2] == 'X') + { + ausgang = "unentschieden"; + + } + else if (line[0] == 'A' && line[2] == 'Y') + { + ausgang = "gewonnen"; + } + else if (line[0] == 'A' && line[2] == 'Z') + { + ausgang = "verloren"; + } + else if (line[0] == 'B' && line[2] == 'X') + { + ausgang = "verloren"; + } + else if (line[0] == 'B' && line[2] == 'Y') + { + ausgang = "unentschieden"; + } + else if (line[0] == 'B' && line[2] == 'Z') + { + ausgang = "gewonnen"; + } + else if (line[0] == 'C' && line[2] == 'X') + { + ausgang = "gewonnen"; + } + else if (line[0] == 'C' && line[2] == 'Y') + { + ausgang = "verloren"; + } + else if (line[0] == 'C' && line[2] == 'Z') + { + ausgang = "unentschieden"; + } + + counter_(ausgang, line[2]); + } + Console.WriteLine($"Endergebnis: {counter}"); + } + static private void counter_(string ausgang, char buchstabe) + { + switch (ausgang) + { + case "gewonnen": + counter += 6; + break; + case "verloren": + counter += 0; + break; + case "unentschieden": + counter += 3; + break; + } + + switch (buchstabe) + { + case 'X': + counter += 1; + break; + case 'Y': + counter += 2; + break; + case 'Z': + counter += 3; + break; + } + } + static public void day2_partTwo() + { + day_2_einlesen(); + + foreach (string line in lines) + { + string ausgang = ""; + if (line[0] == 'A' && line[2] == 'X') + { + ausgang = "schere"; + + } + else if (line[0] == 'A' && line[2] == 'Y') + { + ausgang = "stein"; + } + else if (line[0] == 'A' && line[2] == 'Z') + { + ausgang = "papier"; + } + else if (line[0] == 'B' && line[2] == 'X') + { + ausgang = "stein"; + } + else if (line[0] == 'B' && line[2] == 'Y') + { + ausgang = "papier"; + } + else if (line[0] == 'B' && line[2] == 'Z') + { + ausgang = "schere"; + } + else if (line[0] == 'C' && line[2] == 'X') + { + ausgang = "papier"; + } + else if (line[0] == 'C' && line[2] == 'Y') + { + ausgang = "schere"; + } + else if (line[0] == 'C' && line[2] == 'Z') + { + ausgang = "stein"; + } + counter_part_two(ausgang, line[2]); + } + Console.WriteLine($"Endergebnis: {counter}"); + } + static private void counter_part_two(string ausgang, char buchstabe) + { + switch (ausgang) + { + case "stein": + counter += 1; + break; + case "papier": + counter += 2; + break; + case "schere": + counter += 3; + break; + } + + switch (buchstabe) + { + case 'X': + counter += 0; + break; + case 'Y': + counter += 3; + break; + case 'Z': + counter += 6; + break; + } + } + } +} diff --git a/Kalender/day3.cs b/Kalender/day3.cs new file mode 100644 index 0000000..5d2e0b5 --- /dev/null +++ b/Kalender/day3.cs @@ -0,0 +1,90 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Diagnostics.CodeAnalysis; +using System.IO; +using System.Linq; +using System.Runtime.CompilerServices; +using System.Text; +using System.Threading.Tasks; + +namespace Kalender +{ + internal class day3 + { + static string file = "../../../../day3.txt"; + static string letters = "0abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; + static string[] lines = File.ReadAllLines(file); + static List bag1 = new List(); + static List bag2 = new List(); + static int sum = 0; + + public static void day3_part1() + { + Console.WriteLine(letters.Count()); + + + foreach (string line in lines) + { + bag1.Add(line.Substring(0, (line.Length / 2))); + bag2.Add(line.Substring(line.Length / 2)); + } + + for(int i = 0; i < bag1.Count; i++) + { + foreach(char c in bag1[i]) + { + + if (bag2[i].Contains(c)) + { + for(int j = 0; j < letters.Count(); j++) + { + if(letters[j] == c) + { + sum += j; + } + } + Console.WriteLine(c); + break; + } + + } + } + Console.WriteLine(sum); + } + public static void day3_part2() + { + int counter = 0; + int start = 0; + char bla = ' '; + + while (counter < lines.Count()) + { + + foreach(char c in lines[start]) + { + if (lines[start].Contains(c) && lines[start+1].Contains(c) && lines[start + 2].Contains(c)) + { + bla = c; + break; + } + } + for (int j = 0; j < letters.Count(); j++) + { + if (letters[j] == bla) + { + sum += j; + } + } + + Console.WriteLine(sum); + start += 3; + counter +=3; + + } + + } + } + } + + diff --git a/Kalender/day5.cs b/Kalender/day5.cs new file mode 100644 index 0000000..1670f1f --- /dev/null +++ b/Kalender/day5.cs @@ -0,0 +1,138 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Runtime.CompilerServices; +using System.Security.Cryptography.X509Certificates; +using System.Text; +using System.Threading.Tasks; + +namespace Kalender +{ + internal class day5 + { + static List> lists = new List>(); + + // Create Base lists in "lists" + public static void createBaseList() + { + string file = "../../../../day5_base.txt"; + string[] lines = File.ReadAllLines(file); + + // 9 Columns in file day5_base + int column = 9; + + for (int i = 0; i < column; i++) + { + lists.Add(new List()); + } + + // If on this index a char, @ it to a specific list + foreach (string _line in lines) + { + if (_line[1] != ' ') + { + lists[0].Add(_line[1]); + + } + if (_line[5] != ' ') + { + lists[1].Add(_line[5]); + + } + if (_line[9] != ' ') + { + lists[2].Add(_line[9]); + + } + if (_line[13] != ' ') + { + lists[3].Add(_line[13]); + + } + if (_line[17] != ' ') + { + lists[4].Add(_line[17]); + + } + if (_line[21] != ' ') + { + lists[5].Add(_line[21]); + + } + if (_line[25] != ' ') + { + lists[6].Add(_line[25]); + + } + if (_line[29] != ' ') + { + lists[7].Add(_line[29]); + + } + if (_line[33] != ' ') + { + lists[8].Add(_line[33]); + + } + + + } + + } + + + static public void getMoveLine() + { + createBaseList(); + string file = "../../../../day5.txt"; + string[] lines = File.ReadAllLines(file); + + + foreach(string line in lines) + { + + + // Mover + List splitTheLineList = new List(); + splitTheLineList = splitTheLine(line); + + int moveFrom = splitTheLineList[1] -1; + int moveAll = splitTheLineList[0]; + int moveTo = splitTheLineList[2] -1; + + + for(int i = 0; i < moveAll; i++) + { + char x = lists[moveFrom].ElementAt(0); + lists[moveFrom].RemoveAt(0); + lists[moveTo].Reverse(); + lists[moveTo].Add(x); + lists[moveTo].Reverse(); + } + } + foreach (List _charList in lists) + { + + Console.WriteLine(_charList[0]); + } + } + + // Removes the Words, and store the needed Numbers + static List splitTheLine(string line) + { + List list = new List(); + line = line.Replace("move ", ""); + line = line.Replace("from ", ""); + line = line.Replace("to ", ""); + + var a =line.Split(' '); + foreach (string i in a) + { + list.Add(Convert.ToInt32(i)); + } + return list; + } + } + +}