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 = "./../../../../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;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|