182 lines
5.2 KiB
C#
182 lines
5.2 KiB
C#
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 = "../../../files/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;
|
|
}
|
|
}
|
|
}
|
|
}
|