diff --git a/2/input b/2/input new file mode 100644 index 0000000..41022db --- /dev/null +++ b/2/input @@ -0,0 +1,2500 @@ +B Y +A X +B Y +A Y +A Z +B Y +B Z +C Y +A X +C X +A X +B Y +C Y +B Y +B Z +C X +C Z +A X +B Y +C Z +C Y +B X +B Y +A X +B Z +B Z +B Y +C Z +B X +B Z +C X +B Y +B Y +B Y +B Y +C X +C X +B Z +C X +B Z +C X +B Y +C X +B X +B Z +B Y +C Y +B Y +A X +B Y +B Y +C Y +B Z +B Y +B Z +C Y +B Y +A X +C X +C Y +B Y +A Z +A Z +A X +B Z +A X +A X +B Z +C Y +C Z +B Z +B X +C Y +B Y +C Y +C X +C Z +A X +B X +B Y +B Z +B Y +A X +B Z +B Y +B Z +B Z +B Y +A X +B Y +C X +A X +B Y +C X +A X +C Y +B Y +C Z +A X +B X +C X +B Z +A X +B X +B Y +B Y +B X +B Z +B Y +C Y +B Y +B Y +A X +C Y +C X +B Y +B Y +C Y +B Y +B X +B Z +B Y +B Y +C Y +B Z +B Y +B X +A X +B Z +A X +A X +B X +B Z +B X +B Y +B Y +B Y +B Y +C Y +C X +C Y +B Y +B Z +B X +B Z +C Z +C X +B Z +C X +B Y +C X +C Y +B Z +C X +C X +B Z +B Y +B Y +B Y +B Y +B Y +B Y +A X +A X +B Y +C X +B Y +B Z +B X +B Z +A Z +A X +C X +B X +A X +A X +C Z +A Z +B Y +A X +C X +C Y +C Y +A X +B Y +A X +B Z +C X +B Z +B Y +B Y +A X +C X +C X +B Y +A X +A X +C X +B Z +B Y +A X +A X +B Y +B Y +B Y +B Y +C X +B Z +B Y +B Y +A Y +B Y +B Z +A Y +B Y +C Y +B Z +B Y +B Y +C Z +A X +B Z +C X +C X +B Y +B Z +B X +A X +B X +B Y +B Z +B Z +B Z +B X +B Y +B Y +C Z +A X +C X +B Y +B X +C Y +B Y +B Y +A X +B Z +B Z +B Y +B Y +B Z +B Y +C Y +C Y +B Y +B Y +B Y +A X +A X +C Y +C Z +C Z +A Y +C Y +B Z +B Y +B Y +C Y +A X +B X +A Z +A Y +B Y +C X +B X +B X +A X +B Y +B X +C Y +B Y +B Y +B Y +B Y +B X +B Y +C X +C X +A X +B X +B X +B Y +C Y +B Z +C Y +B X +C X +C Y +B Z +C Z +A Y +B Y +A Z +B Z +C Y +A Z +B Y +C X +B Y +B Z +B Y +A X +B Y +B Y +C Y +C Y +A X +B Y +A X +C Y +B Y +C X +A X +C X +B Z +B X +B Y +B Y +B Y +B Y +B Y +C Y +A Z +C X +B X +B Z +B Y +B Y +B X +B Y +B Z +B Y +C Y +B Y +B Y +B Y +B X +B Y +B X +A Z +B Z +C Y +B Y +B Z +B X +B Z +A X +B Y +A X +B Z +B Z +C Z +B Y +B Y +B X +B Y +B Y +C X +B Z +B Z +B Y +B Z +B Y +B Z +A X +C X +C X +B Y +C Z +B X +B X +B Y +C X +C Y +B Y +C X +C Y +B X +B Z +A X +B Z +B Z +C Y +B Z +C X +B Y +C X +A X +A X +C Z +C X +B Y +C Y +B Z +C X +A X +C Y +B Z +B Y +C X +C Z +B X +A X +B Y +A X +B Y +C X +B Z +C Y +C X +B Z +B Z +B X +C Z +B Y +B Z +C X +B Y +B Y +B Y +C Z +B Y +B X +B X +C Z +B Z +A X +B Y +B Z +B Z +C Y +C Z +A Y +B Y +B Y +A X +B Y +C Z +A X +C X +B Z +C X +B Y +B X +B Y +B Y +C Y +A Z +B Y +C Z +B Z +C Z +B Z +A Y +A X +B Z +B Y +B X +B Y +B X +C X +C X +C X +B Y +C Y +B X +B Y +B X +C Y +A Z +B Z +B Y +B Y +B Y +B Y +C X +C X +A X +B Y +B Z +B Z +C Y +B Y +A X +C Y +C Y +B X +B X +A X +C X +C Y +B Z +A X +B Z +C X +B Y +B Y +C Y +B Y +C Y +A Y +B Y +B Y +B Z +A X +B Y +B Z +C X +B Z +B Z +B Y +B Y +B X +B Y +C Z +B Z +B Y +B Y +A X +B Y +B Y +B Y +B Y +B Y +B Y +C Y +B Z +B Y +C Y +A Z +C Y +B Y +C X +C Y +C Y +B Z +B Z +C Y +C X +B Z +B Y +B X +A X +A X +C X +B Z +C X +B Z +A X +B Y +B Y +C Y +A X +B Y +B Y +A X +A X +A Z +C Z +C X +A X +B Z +B Y +C Y +C Y +C Z +B Y +A X +B X +B Y +C X +C Y +B Z +C Y +B Y +B Y +B Y +B Z +B Z +B Y +B Y +C X +A X +B X +B Y +A X +B Y +B Z +B X +C X +B Y +B Y +B X +B Y +C Y +C Y +B Y +B Y +B Y +A X +C Y +B Y +B X +C Y +A X +B Y +A Y +A Z +B Z +B X +A X +C Y +C Y +B Z +A Y +B X +B Y +A X +C X +B Y +C X +B Z +B Z +C X +B Y +B Z +B Y +B Y +B Z +B Y +B X +B Z +C X +A X +C Y +C Y +B Y +B Z +A X +B X +C Y +A X +A X +A X +C X +B Z +B Y +C Z +B Y +B Y +C X +B Y +A X +A X +B Y +B Z +C X +C X +C X +A X +B X +C Z +C Y +B Y +C X +C X +B Y +B Y +C Z +A Z +A X +B Y +B X +A X +A X +B Y +B X +B Y +C Y +A Y +C X +B Y +B Z +B Y +B Z +C Z +B X +B Y +A X +B Y +B Y +C Z +A X +B Y +B Y +B Y +A X +C Y +A X +B Y +C X +C Y +C X +B Y +B Z +B Y +B Y +C X +C Y +B Y +C X +C Y +B Y +B Z +A X +A Z +B Y +C X +B X +B Y +C X +A X +A X +C Y +C Z +C X +C Y +A Y +C Y +C Z +C X +B Y +C X +A Z +B X +C X +B Y +B Z +B Z +B Y +C Y +B Z +B Y +B Z +A X +C X +B Z +C X +B Z +C X +C Y +C Y +C Y +B X +C Z +B Y +B Z +B Y +C Y +B Y +A X +B Y +C X +A Y +A Z +A X +B Y +C X +B Z +B Z +C X +A X +B Y +A Z +B Y +C X +B Z +B Y +C X +A X +B X +C Y +C Z +C Y +C Y +A X +B X +B Y +C Y +B Y +A X +B Y +B X +B Y +A X +B Y +B X +C Z +B Y +C X +B Y +A X +B X +B Z +B Y +A X +C X +B X +C X +B Y +A X +C X +B Y +A X +B Y +B Y +A X +B Y +B Z +A X +B Y +B X +C Y +B X +B Z +C X +B Y +C Z +B Y +C X +C X +A X +B Y +C Z +B Z +B Y +B Y +B Z +B Y +B X +B X +B Z +C Y +C Z +B Y +A X +B Y +B Y +C X +C X +B Z +A X +B Y +B Y +B Y +C X +B Y +B Y +C Y +B Z +C X +B Z +B X +B Y +C X +C X +A X +C X +B Y +C Y +B Y +C Z +A X +B Z +B Y +B Y +B Y +C X +C Y +B Y +B X +C X +B Y +A X +B Y +C X +A X +A X +C Y +B X +B X +B Z +B Z +B X +C Y +B Y +B Y +B Y +C X +C Y +B Z +B Z +C Z +B Y +B Y +A Z +C Y +C X +B Z +A X +A X +C X +A X +B X +B Y +B Z +B Y +A X +B Z +B Z +B Y +B Y +C Z +A X +C Y +B Y +B Y +B Z +B Y +C X +B Z +A X +B X +A X +B Y +C X +A X +C X +B Y +A X +C X +B Y +A X +B X +A Y +B Y +B Z +C Z +B Y +B Z +C X +B Z +B Y +C X +B Y +B Y +B X +A X +A Y +A X +B Y +B X +C X +B Y +B Y +B Z +C Y +A X +B Z +A X +A X +A X +A X +C Y +B X +C X +C X +A X +B Y +C Y +A X +A X +C Y +C X +C Y +B Y +B Z +A X +B Y +B Y +B Z +B Y +B X +C Y +C X +C Y +C X +B Y +A X +B Y +A X +C Y +C X +C Y +C X +C Y +B Y +B Y +A Z +A X +A X +B Z +A X +B Y +B Y +A X +A X +C Y +C Y +C Y +A X +B X +C X +B Y +A X +B X +B Y +C Y +A X +B X +B Y +B Y +B Y +C X +C X +B Y +B Y +A Z +B Y +A X +B Y +B Y +B Y +B Y +A X +B Z +C X +B Z +B Z +C Y +B Z +A X +A X +B Y +A Y +A X +A Z +C Y +C X +C X +C Z +C X +C Y +B X +B Y +A X +B Y +A X +C X +B Y +A Y +B Y +B X +B Y +A X +B Y +B Z +B Z +B X +B Z +C X +A X +B Y +B Y +B Y +A X +C X +C X +C X +B Y +C Y +A X +B Y +C Y +B X +B Z +A X +B Y +A X +C X +C Y +C Y +B Y +C Y +C X +B Z +B Y +B Y +A X +A X +B Y +B Y +B Z +C X +C X +C Y +C X +C Z +A Z +C X +B Y +A Z +B Y +A X +B Y +C X +B Y +B Y +B Z +C Y +B Y +A Z +A X +A X +C X +A Y +B Y +B Y +A X +A X +B Z +B Z +B Y +C X +C Y +C Z +A Z +B Z +A X +A Z +A X +C Y +C X +A X +A X +C Z +C X +A X +C Y +C X +A X +B Z +B Z +B Y +B Y +B Y +B Y +B Y +C Y +C X +B X +C X +B Y +B Y +A X +B Y +A X +A Y +B Z +B Y +A X +A Y +B X +B Y +C Y +B Y +C X +C Z +B X +B Z +B Y +C Z +B Y +C Y +A X +B Y +B Y +B Y +B Z +C Y +A Z +C X +B Y +B Z +C X +B Y +A X +C Y +B X +C X +A X +B Y +B Y +C X +B X +B Y +B Z +B Y +A X +B Y +B X +A X +A X +A X +B Y +C Y +C X +B Y +A X +A Z +B Z +A X +C X +B Y +B Y +C Y +B Z +B Y +C X +C Y +B Y +C Y +B Y +B Y +C X +A X +A X +A X +B Y +B Y +B Y +C X +A Z +B Y +B Z +B X +B Z +B Y +B Y +C X +A X +B Y +B Y +B X +B X +C X +C X +A X +C Y +B Y +C X +B Y +C Y +C X +B Y +C X +B Y +A X +B Z +C Z +C Y +A X +B Z +A X +C Y +C Y +B Z +B Z +A X +C X +B Y +C Z +B X +B Z +B Y +B Y +B Y +C Y +B Y +C X +A X +B Y +C Y +B Y +A X +B Y +B Y +C X +A X +B X +B X +B Z +C Z +B Y +C Y +C Y +B X +C X +C X +B Z +B Z +C X +C X +B Y +C X +B Y +B Y +B Z +B Y +B X +B Y +C X +C Y +C Y +B Y +A X +B Y +A X +C Y +C Z +C X +C Y +B Y +B Y +B Z +B Z +A Y +C X +B Y +B Z +A Z +B X +C X +B Y +B Z +B Y +C X +A X +B Z +C X +B Z +B Z +B Z +B Y +C X +B Y +B Y +B Y +A Z +B Y +B X +C X +B Y +C Y +A Z +B Z +A X +A X +B Z +A X +B Z +A X +A X +C X +C X +A Z +C X +B Z +B Z +B Y +B X +B Y +B Y +B Z +B Y +C Y +A X +C Y +B X +B Y +B Z +C X +A Z +A X +B Y +A X +A X +C X +A X +B Y +A Z +B Y +C Y +A X +B Y +A X +B Z +A Z +C X +B Z +B Y +B Z +B X +A X +B Z +C X +B X +B Z +B Z +C X +C X +C X +B Y +B Z +C X +B X +B Y +C Y +B Z +A Z +C X +B Z +B Z +B X +C Y +B Z +B Y +A X +B Y +B X +B Y +B Y +B Y +B Y +B Z +A X +B Y +B Y +B Y +B Y +C Y +A Z +C X +B X +A Y +B Y +A X +A X +B Y +A X +C Z +B Z +C Z +B Y +C Y +A X +C Y +C Y +C Y +B Y +C Y +B X +B X +C Y +A X +C Y +C X +C X +B Y +B Z +B X +B Z +B Z +B Y +C Y +B Y +C Y +B Y +B Z +B Y +A X +B Y +C Z +B X +B Y +C Z +C X +B Y +C Y +C X +A X +B Y +A X +B X +B Z +B Y +B Z +C X +B Y +A X +B Z +B Y +B Z +B X +B Z +B Z +A X +A Z +B Y +C Y +A X +B Z +B X +A X +A X +C X +B Y +C X +C Z +B Z +B Z +B Y +C Y +C X +B Y +B Y +A X +B Y +C Z +B Y +B Y +C Y +B X +B Y +B Y +B Z +B X +B Y +B X +B Y +B Z +B Z +B Z +B Z +B Z +C Y +B Y +C Y +A Y +C Y +C Z +A X +B Y +C Y +B Y +A X +C Y +B Z +A X +A X +B Z +C Y +B Y +C X +B Z +B Y +A X +B Y +C X +B Y +B Z +A X +C X +B X +B Y +A Y +C Y +C X +B Z +C Z +B X +B X +C Y +A X +A X +B Y +C Y +C X +C Y +B Z +C X +B Y +B X +B Y +C X +B Z +B Z +B Y +C X +C Z +B Y +B Z +B Z +B Z +A Y +B Y +A X +B Z +C X +C Z +A X +B Y +C X +A X +C Y +C Y +B Y +B Y +B Y +B X +B Y +B Y +C X +A X +B X +B Z +C X +B Y +C X +C Y +B Y +A X +B Y +B Y +A X +B Y +A X +C X +A X +B Y +A Y +A X +B Y +C X +C Y +B Z +A X +B Y +C X +A X +B Z +C Y +A X +C X +B Y +C X +C Z +B Y +B Z +C Z +C Y +B Y +B Y +B Y +B Y +B Y +B Y +A X +A X +B X +A X +C Y +B Z +B Y +B Y +B Y +B Y +C X +B Z +A X +A X +B X +B Y +B Z +B Z +B Y +C X +A X +B Y +B Y +B Y +B Y +A X +B Z +C Z +B Z +B Y +A X +A X +B Z +B Y +B Y +B Y +C X +B Z +B Y +B Y +B Y +B Z +C X +A X +B Z +C X +B Z +A X +A X +A X +C X +C X +B Z +C X +C X +C X +B Y +B Y +C X +A X +C X +C Y +B Z +B Y +B Z +A X +B Y +B Z +B Y +A X +B Z +B Y +B Z +A X +B Y +B X +C Y +C Y +B Y +C Y +C X +B Z +B Z +C Y +A X +B Y +B Y +C Y +C Y +A Z +B Y +B X +C X +B Y +C X +C Z +C X +C X +C Y +A X +C Z +C Z +B Z +B Y +A X +B Y +B Z +B Z +C Y +C Y +B Y +B X +B Z +A X +C X +C X +A X +B Y +C Y +C X +B Y +B Z +A Y +B Y +B Y +B Y +B Y +C Y +B Y +C Y +B Z +C Y +B Y +B Z +B Y +B Y +C X +C X +B Z +B Z +B Z +B Y +B Z +A X +A Y +C X +B Z +A X +A X +A X +C Y +A X +B Y +A Y +B Y +B Y +C X +B Y +B Y +A X +B X +A X +B Y +B Y +B X +A X +B X +B Z +C X +A X +B Y +B Z +C Y +C Z +B Y +C Y +C Z +B X +B Y +C Y +A X +B Y +C Y +C X +B X +C X +A X +C Y +C Z +B Y +A X +C Z +C X +B Y +B Y +C Y +C Z +C Y +A X +A X +C Y +A Y +A Z +A Y +C X +C Y +B Z +B Y +B Y +B Z +A X +C X +C X +B Y +A Z +B Y +B X +B Y +B Y +C Y +C Z +A Y +B Y +B Y +B Y +B Z +B Y +C Y +B X +B Y +C X +A X +B X +B Y +B Y +A X +B Z +C Z +C X +B Y +A X +A X +C Y +B Y +A X +B Y +B Y +C Z +A X +A X +B Z +C Y +B Y +B Y +A X +B Z +A X +C Z +B Y +A Z +B Y +A Z +C Z +B Z +B Y +C Z +B Y +C Y +A X +B Y +B Z +C Y +A X +C Y +C Z +B Z +A Z +B X +A Z +C Z +A X +C X +B Y +B Y +B Y +B Y +B Y +B Y +C X +B X +B Y +C X +B Y +C Y +A X +B Y +C X +A X +B Z +B Y +A X +B Y +C X +C X +B Y +A X +B Y +C X +C X +B Y +B Y +B X +C Y +B X +C X +A X +B Y +A Z +B X +B Z +A Z +A X +B Y +C Y +B Y +B Y +B Y +C Z +A X +B Z +C Y +C Y +C X +A Z +B X +C X +C Z +B Y +B Y +C Y +C X +B Y +C Y +B Y +C Y +B Z +C X +B X +B X +C Y +B Z +B Y +B Y +B Z +B Y +A X +C Y +B Y +B Y +B Z +B Y +C X +B Y +C X +B X +A X +A X +C X +B X +B Y +B X +A X +C X +B X +B Z +B Y +A X +A Y +B Y +C Y +B Y +A Z +B Y +B Y +C Y +A X +C Y +B Z +C X +C X +A X +C Y +C Y +A Y +B Y +B Z +B Y +C X +B X +C Y +C Y +A Y +C Y +B Y +B X +B Y +C Y +B Z +C X +B Y +C Y +B Y +B Y +B Y +A X +C Y +A X +B X +B X +C X +C Y +B Y +A Z +B Y +A X +B Z +B Y +C Z +B Y +C X +C X +C X +C X +B X +C X +B Z +A X +C Z +B Y +A X +C Y +A Z +B Y +C Y +B Y +B Z +A X +B Y +B Y +B Y +A X +B Z +C Y +B Y +B Y +B X +B Y +B Y +A Z +C Y +B X +C X +B Y +B Z +B Y +B Y +C X +B Z +B Y +C Y +B Y +B Y +A X +C X +A X +B Z +A X +C X +B Z +A X +B Z +C Z +A X +B Z +C X +B Y +B Y +B Y +C X +B X +A X +B Y +B Z +C X +B X +B Z +C Y +B X +B Y +C Y +B Y +C X +B Z +A Z +B Y +B Z +C X +B Z +B Y +C Y +C Y +A X +C Y +B Y +A Z +C X +C X +C X +B Y +C X +B X +B Y +B Y +A X +A X +B Z +A X +C Y +C X +B Y +C Z +B Y +B Y +C X +B Z +C Y +A X +B Y +A X +A X +B Y +B Y +B Y +B Z +A Z +B Z +B Y +A X +C X +A X +A Z +C Y +A X +C X +C X +A X +C Z +B Y +B Y +B X +B Y +C X +A X +A X +B Y +A Z +C Z +B Z +B Y +B Y +B Y +C Y +C Y +B Y +A X +B Y +B Y +C Z +B Y +A X +C Z +B Y +C X +B X +B Y +B Z +C X +C Y +B Y +B Z +B Z +A X +A X +B Y +B Y +C Y +C X +C X +A Z +C Z +B Y +B Y +A X +B Y +B Y +A X +C Y +C X +C X +C Y +C Y +B X +B Z +C X +B Y +C Y +B X +B Y +A X +C Z +C Y +C Y +A X +C Z +C X +B Y +B Y +C Y +C X +C X +C X +C Z +C Y +A X +B Y +C X +B Y +B X +C X +B Z +C X +C Z +B Z +B Y +A X +B Z +B X +C Y +B X +B Y +B Z +B Y +A Y +B Y +A X +A X +B Y +A X +C X +C Z +B Z +B Y +B Y +B Y +A X +C Z +B Y +C Z +C X +A X +B Y +A X +B Y +C Y +B Y +A X +B Y +C Z +B Z +A Y +C X +A X +A Z +C X +B X +B Y +B X +C Y +B Y +B Y +C Y +C Y +B Y +A X +B Y +B Y +B Y +C X +C Y +B X +B X +B X +A X +B Z +B Y +C Y +B Y +C X +B X +C X +C X +B Y +C X +B Z +B Z +C X +B Y +B Y +B Z +C X +C Z +B Y +A X +A X +A Y +C X +B Z +B X +B Y +B Y +C X +B Z +A X +C X +A Y +A X +C X +C Z +B Y +B Y +B Z +C X +B Z +B X +A Z +C Z +A X +B Y +A X +B Z +A X +B X +B Z +B Y +B Y +C X +B Y +B Y +A X +B Z +C Y +C X +B Y +C X +A Y +B Y +B Y +B Y +B Z +C Y +B Y +C X +B Y +A Z +C X +B X +A X +C Z +B Y +A X +B Z +B Z +C X +A Y +A X +B Z +B Z +B X +B Z +C Z +C Y +B Y +C X +B X +B Y +A Y +C X +B Z +B Y +C X +B X +C X +A X +B Z diff --git a/2/part1.ps1 b/2/part1.ps1 new file mode 100644 index 0000000..6cd6cf7 --- /dev/null +++ b/2/part1.ps1 @@ -0,0 +1,68 @@ +# A = Rock +# B = Paper +# C = Scissors + +# X = Rock 1 points +# Y = Paper 2 points +# Z = Scissors 3 points + +# Loss 0 points +# Draw 3 points +# Win 6 points + + +$scoring = @{ + # rock + X = 1 + # paper + Y = 2 + # scissors + Z = 3 + + loss = 0 + draw = 3 + win = 6 +} + +$shapes = @{ + # rock + A = @{ + # rock + X = $scoring.draw + # paper + Y = $scoring.win + # scissors + Z = $scoring.loss + } + # paper + B = @{ + # rock + X = $scoring.loss + # paper + Y = $scoring.draw + # scissors + Z = $scoring.win + } + # scissors + C = @{ + # rock + X = $scoring.win + # paper + Y = $scoring.loss + # scissors + Z = $scoring.draw + } +} + + +$points = 0 + +Get-Content input +| ForEach-Object { + $shape,$response = $_.Split(' ') + + $points += $scoring.$response + $points += $shapes.$shape.$response +} + +$points diff --git a/2/part2.ps1 b/2/part2.ps1 new file mode 100644 index 0000000..756f78b --- /dev/null +++ b/2/part2.ps1 @@ -0,0 +1,65 @@ +# A = Rock +# B = Paper +# C = Scissors + +# Rock 1 points +# Paper 2 points +# Scissors 3 points + +# X = Loss 0 points +# Y = Draw 3 points +# Z = Win 6 points + + +$scoring = @{ + rock = 1 + paper = 2 + scissors = 3 + + X = 0 + Y = 3 + Z = 6 +} + +$shapes = @{ + # rock + A = @{ + # loss + X = 'scissors' + # draw + Y = 'rock' + # win + Z = 'paper' + } + # paper + B = @{ + # loss + X = 'rock' + # draw + Y = 'paper' + # win + Z = 'scissors' + } + # scissors + C = @{ + # loss + X = 'paper' + # draw + Y = 'scissors' + # win + Z = 'rock' + } +} + + +$points = 0 + +Get-Content input +| ForEach-Object { + $shape,$result = $_.Split(' ') + + $points += $scoring.($shapes.$shape.$result) + $points += $scoring.$result +} + +$points