diff options
Diffstat (limited to 'Advent-of-Code-2022/aoc-2')
| -rwxr-xr-x | Advent-of-Code-2022/aoc-2/build.sh | 5 | ||||
| -rw-r--r-- | Advent-of-Code-2022/aoc-2/input.txt | 2500 | ||||
| -rw-r--r-- | Advent-of-Code-2022/aoc-2/main.c | 70 | ||||
| -rw-r--r-- | Advent-of-Code-2022/aoc-2/sample.txt | 3 | 
4 files changed, 2578 insertions, 0 deletions
| diff --git a/Advent-of-Code-2022/aoc-2/build.sh b/Advent-of-Code-2022/aoc-2/build.sh new file mode 100755 index 0000000..30f495e --- /dev/null +++ b/Advent-of-Code-2022/aoc-2/build.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +set -xe + +gcc -o main main.c -Wall -Wextra -pedantic diff --git a/Advent-of-Code-2022/aoc-2/input.txt b/Advent-of-Code-2022/aoc-2/input.txt new file mode 100644 index 0000000..dd8db24 --- /dev/null +++ b/Advent-of-Code-2022/aoc-2/input.txt @@ -0,0 +1,2500 @@ +C Z +A Y +C Z +A Y +C Y +A Z +B Y +C X +A Y +B X +B X +A Y +C Z +C Y +C Y +A Y +C Y +B X +B X +A Z +C Y +B Z +C Z +A Z +B Y +A Y +C Z +A Z +A Y +C Z +C Z +A X +A Y +B Y +C X +B Y +C Z +A Z +A X +A Z +A Y +C Y +C X +C Y +A Z +C Z +C Z +A Y +A Z +C Z +A Y +C Z +C Y +C Z +A Z +A Y +C Z +C Y +C Y +C X +B Y +B Y +C Y +A Z +A Z +B X +B Z +B X +A Y +A Z +A Y +C Y +B X +B Y +A Z +C Y +C Z +A Y +B X +C Z +A Y +C Z +C Z +A Y +B Z +C Z +A Y +B X +A Y +C Z +C Z +B Y +B Z +B Z +A Y +A Z +B Y +C Z +C Y +C Z +A Y +C Z +C Z +C Z +C Y +A Z +A Z +C Z +C Z +A Z +C Z +C Y +C X +A Z +A Z +B Z +A Y +A Y +C X +B Y +C Y +A Y +B X +B Y +B Y +B Y +C Y +A Z +C Y +A Y +C Z +B Y +B X +A Z +C Y +B Y +A Y +C Z +B Z +B Z +A X +B Y +C Z +B Z +B Y +C Z +B X +B Y +A Y +A Y +A Y +B Y +B Y +A Z +C Z +A Y +A Z +A Y +A X +C Y +A Y +C Z +A Z +C Z +C Y +C X +B Z +A Z +C Y +C Z +A Z +C Z +C Z +C Y +C Z +C Y +C Z +C Y +C Z +C Z +C Y +B X +A Y +C Y +C Z +B Y +B Y +C X +C Z +A Z +B X +C Z +A Y +B Y +C Z +C Z +C Z +B X +A Y +C Z +B Z +B X +C Z +C Z +C X +A Y +A Y +C Z +A Y +A Y +A Y +B X +C Z +B X +C Z +A Y +A Z +B X +B Z +C Z +A Y +C Y +C Z +C Y +B X +B Y +C X +C Z +A Y +A Y +B Z +A Y +C Z +C Z +B Y +B X +C Z +C Y +C Y +B Y +C Y +A Y +C X +C Z +A Y +A Y +C Y +A Y +C X +C Z +A Y +B Z +A Y +A Y +A Y +C Z +B X +B Y +C Y +A Z +C Y +C X +B Z +A Y +C Z +A Y +B Y +B X +A Y +C X +C X +B Y +C Z +B X +C X +C Z +A Y +C Z +C X +C Z +B Y +C Z +C Z +A Y +C Z +B Y +A Y +A Y +C Y +C Z +B X +C Z +C X +C Y +B Z +A Y +B X +C Y +B Y +C Y +B Y +A Y +A Y +B X +B Z +B X +B Y +C X +C Z +A Y +C Z +C Z +C Z +C Z +B Z +C Z +B Y +A Y +C Y +C X +C Z +B X +C Z +B Y +C X +C Z +A Y +A Z +B Z +A Y +B Y +B Z +C Y +B X +A X +C Y +C X +B Y +C X +C Z +C Z +C Z +B X +C X +A X +B Y +B Z +C Z +C Z +C Y +C Z +B Y +C Y +C Y +C Z +B X +B Z +B Y +B Y +C Z +B Y +A X +B X +A Z +C Z +C Z +A Y +C Z +A Y +C Y +B Z +B Z +C Z +C X +A Y +C X +B Z +A Y +B X +A Z +A Z +B X +C X +C Y +B Y +A Y +B Y +C Z +C Z +C Y +A Y +C Y +C Z +C Y +C Z +C Z +C Z +A Y +A Z +A Y +C Z +B X +A Y +C Z +C Y +C X +C Y +C Z +C Y +A Y +A Z +C Y +A Z +C Y +A Y +A Y +C Z +C Y +A Y +A Y +B Y +B Z +A Z +C Z +C Z +C Z +C X +B X +C Z +C Y +A Z +B Y +C Z +C Z +B Y +A Z +C Z +B Z +B Y +C Y +C Y +A Z +C Z +A Z +B Y +C Y +B X +C X +B Y +A Z +C Z +C Y +C Z +B X +C Z +C Y +C X +C Z +A Y +A Z +C Y +B Y +A Z +B X +C Z +C Y +C Y +C Z +A Z +A Z +B Y +B X +B X +A Y +B X +C Y +A Y +A Y +B X +C Y +B Z +A Z +B X +C Y +C X +A Y +A Z +A Y +C Z +B Z +C Z +A Y +C Z +C X +A Z +B Y +A Y +B Y +C Z +C X +A Z +C Y +B X +A Y +C X +C Y +A Z +B Z +A Y +C Z +B Y +A Y +C Y +C X +B X +C Z +B X +C Y +C X +C Y +C Y +B X +A Y +B X +C Y +C Z +B X +C Z +B Y +A Y +C Z +A Z +A X +B Y +A Z +A Y +C Z +C X +B Y +C Y +A Y +C Y +A Z +A Z +A Z +C Y +A Y +B Y +C X +C X +C Z +A Z +C Y +C Z +C Y +C Y +A X +B Z +B Y +A Y +A X +A Z +C Z +A X +A Y +C Z +C Z +C Y +C Z +C Z +C X +B Y +B Z +B Y +A Y +B Y +B X +A Z +B Y +C Y +A Z +B Y +B Y +C X +C Z +B X +A Y +C Z +C X +A Z +A Y +A Z +C Z +B Y +B Y +C Z +A Y +A Y +C Y +B Y +C Y +C Y +C Y +A Y +C Z +B X +A Y +B Z +A Y +B X +C Z +C Y +C Y +A Y +A X +C Z +B X +B X +B X +C Y +C Y +A Z +A Y +C Z +B Z +C Z +C Z +C Y +A Y +C Y +A Z +A Y +B Y +C Z +C Y +B Y +A X +B Y +A Z +B Y +A X +A Y +B X +A Y +B Y +B X +A X +A Z +C Z +A Z +A Z +C Y +A X +A Y +C Z +C Y +A Y +B Y +A Z +A Y +B Y +C Z +C Z +B X +B Y +C Y +A Y +B Y +A Y +B Y +B Y +B Y +C Y +C Z +C Z +B X +A Y +A Y +A Y +C Y +C Y +A Y +A Y +C Z +C Z +B Y +B X +A Y +C Z +A Y +B Z +B Y +C Y +C Y +C Y +B X +A Y +C Z +A Z +B X +C Z +B Y +A Z +C Y +C Y +A Y +B X +A Y +A Y +B X +C Y +C Y +A Z +C Z +C X +C Y +B Y +B Y +C Y +C X +A Y +B Z +A Y +B Z +A Z +A Y +C Z +C Z +C Z +C Z +C Z +C Z +C Y +A Y +C Z +A Z +B Z +C Z +A Z +A Y +C X +A Z +A Y +C Z +B Z +A Y +C Y +B X +C Z +C Z +A Y +C Y +B Y +C Z +C Y +C X +A Z +B Z +A Z +A Y +B Z +C Z +C Z +A Y +A Y +C Z +A Y +A X +C Y +B Y +B X +B Y +B X +C X +C X +A X +A Y +C Y +A X +B X +C Y +A Z +B X +C Z +C Z +B Y +A Y +C Z +C Z +C Y +A Z +B X +C Y +A Y +C Z +C Z +A Z +B Z +B Z +C Z +C Y +C Z +A Y +C Z +C Z +B X +C Z +C Z +B Z +C Z +B Y +C X +C Y +C Z +B Y +A Z +C Z +A Y +B Y +C Z +C Z +C Z +A Y +A Y +A X +C Z +B X +C Z +C Y +C Y +A Z +B X +C Z +C Z +B X +C Y +A Z +C X +C Y +B Y +C Y +C X +A Z +B Z +A Z +B X +C Y +B X +C Z +C Z +B X +B Y +C Z +B Y +A Z +A Y +B Z +C X +C Z +C Y +C Z +B Y +A Z +C Z +B Y +B Y +C X +C Y +A X +B Z +C X +A Z +B Z +A Y +A Y +B X +C Z +C Z +A Y +C Z +A Z +C Y +C Z +C Z +A Z +C Z +C X +A Y +C Y +C X +C X +B X +C X +A Y +B Y +C Y +C Z +C X +C Z +A Z +C Z +A Y +A Y +B Z +B X +C X +A Y +C Z +A Y +C Y +C X +B Y +C Z +B X +A Z +A Z +C X +B X +C Z +C Z +B X +A Y +A Z +C Z +C Z +C Z +A Y +C Z +B Z +A Y +B Z +A Y +B Y +C Y +A Y +B Y +A Z +A Z +C Y +A Z +C Z +B X +C Y +B X +B X +B Y +B Z +A Y +C Y +C Z +C Y +B Z +C Y +C Y +C Z +A Y +B Z +C Y +C Z +C Z +B Z +A X +C Z +B Y +C Y +A Z +C Z +A X +C X +B Y +A Z +A Z +B X +C Z +B X +C Y +C X +C Z +C X +C Z +C Z +B X +B Y +A Y +B X +C X +B Y +A Z +A Z +C Y +C Y +B X +C Z +B Y +B X +A Y +A X +C Y +A X +C Y +C Z +C Y +C X +C Z +B X +B Z +B Z +C Z +B Y +C Z +C Y +A Y +C Y +A Y +C Z +A Y +A Y +A Z +C X +C Z +C Z +C Z +B Y +C Z +B X +A Y +A Z +C Z +B X +A Z +C Z +A Z +A Y +B Y +A Z +C Z +B Y +C Y +C Z +A X +C Z +C Z +C X +C Z +C Z +C Z +B Y +C Y +B Y +B Y +C Z +B X +A Z +A Y +C Z +C Y +B X +C X +A Y +C Z +A Y +B Y +C Z +C Y +B Y +C X +B X +B X +B X +C Y +C Y +C Y +C X +C X +A Y +B X +C Z +A Z +A X +B Y +C Z +C Y +A Y +C Y +C Y +C Y +C Y +B Y +B Y +C Y +B X +A Y +A Z +A Y +B Y +A Y +C Z +C Y +A Y +B Y +B Y +B Y +C Y +C Z +B X +B Y +C Z +C Y +C Z +C Z +C Z +B Y +C X +C Y +C Z +C Z +B Y +A Y +B Y +C Z +A Y +A Z +B X +B X +C Z +B X +A Y +C Z +B Y +B Y +C Z +B X +A Y +A Y +B X +C Z +A Z +C Z +C Y +B X +B Y +A Y +C Z +C Y +C Z +C Z +B X +B Z +C Z +C X +A Y +C X +B Z +C Z +C Z +A X +C Z +A Y +C Y +A Y +A Z +C Y +B Z +A Z +C Z +C Z +C Z +A Y +C X +C X +B Y +C Y +A Z +A Z +B X +B Z +C X +C X +C Y +C Y +C Z +A Y +C Y +B Z +B X +C Y +C Z +B Z +A Y +A Y +C Z +B Y +C Y +B Y +C X +C X +C Z +B Y +A Y +C Z +B Z +A Y +A Y +A Y +A Z +B X +C Z +A Z +C Y +C Z +B Z +B Z +B Y +C Y +C Z +C X +B Y +B X +A Y +C Y +A Z +C Z +C Z +A Y +A Z +C X +C Z +A Z +C Z +B X +C Y +A Y +B Z +B Z +B Y +C Z +C Z +B X +A Z +C Z +C Y +B Y +C Y +C Z +C Y +B X +B X +C Z +C Y +B Y +B X +C Z +B X +C Y +C Z +C Y +B Z +C Z +A Y +A Y +B X +C Z +B X +B X +A Y +B X +B X +C Y +C X +B X +C Z +C Z +C Z +C Z +C Y +B Y +C Z +C Z +A Y +A Z +C X +C Y +A Z +C Z +B X +B Y +C Z +A Z +C X +A Y +B Y +C Z +A Y +C X +A Y +C Z +C X +A Z +C Y +A X +C Y +C X +B Y +A Y +C X +C X +A Y +B X +C Z +C X +A Z +A Y +C X +C Z +C Z +C Z +C Z +C Y +A Z +C X +C Z +C Z +A Y +B X +B X +A Z +C Z +B Y +C Z +B Y +C Z +C Z +B X +C Z +C Z +B Z +C Y +A Y +C Y +B Z +C Y +C X +C Z +B X +C Z +A Y +A Y +C Y +B Y +A Z +A Y +A Z +C Y +B Y +A Z +C Z +C Y +C Y +B Z +B Z +C X +A Y +B X +B Y +B Y +C Z +A Z +C Z +B X +C Z +C Y +C Y +C Y +C X +B X +C Y +A X +B Y +A Z +C Z +C Z +C X +A Z +B X +C Y +C Z +B Y +A X +B Y +C Z +A X +C Z +B Y +C Y +A Y +C Y +B Z +C Z +A Y +A Y +A Y +A Y +A Z +C Z +B Y +C Z +C Y +B X +A Y +C Z +C Z +C X +B Z +C X +A X +B Z +C Z +A Y +A Z +A Y +A Z +C Y +B Y +A Z +C Z +B Y +B Y +C X +A Z +C X +A Z +C Y +C X +C Z +A Y +B Y +B Z +C Z +B X +B X +C Z +C Z +B Z +C X +A Y +B X +B Y +C Z +C X +B Z +B X +B X +A Z +C Z +A Z +C Z +C Z +A Y +C Z +A Y +C Y +A Y +C Z +C Z +C Z +A Y +C Z +A X +B X +B Y +C X +C Z +A Y +C Z +C Y +C Z +C Y +C X +A Y +C Z +C Y +C Y +C Z +A Y +C Z +C X +C X +B X +B X +C Z +C Y +A Z +C Z +C X +C Z +C Y +B Y +C Z +C X +B X +C X +A Y +C Z +A Z +A Y +C Z +C Z +B X +B Y +C Z +C Z +C Y +C Y +C Y +C Z +A Z +B Y +B X +B Y +A Y +C Y +A Y +B Y +B X +B X +C X +C Z +C Z +C Z +A X +B Z +A Z +C Z +C Z +B X +B X +B Y +C Z +C X +A Y +C Z +B X +C Z +B Y +C X +B Z +C X +A Y +B X +C X +C Y +A Y +C Z +A Y +B X +B Z +A Y +C Z +C Y +C Y +C Y +C Y +C X +C Z +B Y +B Y +A Y +B Z +A Y +C Y +C Y +B Z +B Y +C Z +B Z +C Z +B X +B Y +A X +B X +A Y +A Z +C X +C X +C Z +B Z +B Y +A Z +A Y +A Y +C Z +C Z +C X +B X +C Z +C Y +C Y +C Y +C Y +B Y +A Y +B Y +A Z +B X +C Z +C Y +C Z +B Y +C X +B X +A X +C Z +C Z +B Y +A Y +B Y +B Y +C Y +A Z +B Z +C X +A Y +A Y +C Y +A Z +C Z +C X +C X +B Z +C Y +B X +B Y +C Z +C Z +C Y +A Y +A Y +C X +A Y +C X +B Y +C X +C Z +A Z +C X +C Z +C Z +A Y +C Z +C Y +B X +A Y +B Y +C X +A Y +A Y +C Z +C Z +B X +C Y +A Z +A Y +C Z +C X +C Z +C Z +A Y +A Y +C Z +A Y +C Z +B Y +C Y +C Z +C Z +B Z +C Y +B Z +A Z +B Y +B X +B X +C X +C X +A Z +C Z +B X +A Z +C X +B Y +B Y +C Z +A X +C X +C X +B X +A Y +A Z +C Z +C Y +C Z +A Y +B X +C Z +B Y +C Y +A Z +B Y +C Z +B X +B Z +C Z +A Y +A Z +C Z +C Y +A Z +A Z +C Z +B X +A Y +A Y +A Y +A Y +C Z +A X +B Z +A Y +B X +C Z +B X +C Y +B Y +C Z +B X +B Z +A Y +C Z +B Y +C Z +A Y +A Z +C Z +B Y +A Y +C Y +C X +B Y +B X +B Y +C Z +C Z +C Y +A Y +A Z +C Y +C Z +C Z +B Y +B X +C Z +B X +A Y +C Y +A Z +A Y +C Z +B Y +C Y +A Y +B X +B Z +C Y +C Y +A X +C X +C Y +C Y +C Z +B Z +C Z +A Z +A Y +C Y +C Y +B Y +C Y +C Y +C Y +C Z +B Z +C Y +C Y +B X +B Z +B Z +C Z +B Z +C X +A X +C Z +B X +C Z +A Y +A Z +C Z +C Z +B X +B X +A Y +A Z +B X +B Z +C X +A Y +A Y +C Z +A Y +B Y +B Z +A Z +B X +C Z +C Z +B Z +B Y +C Z +C Y +A Y +C Z +C Z +A Y +A Y +B X +B Y +A Y +C Y +B Y +C Z +A Y +C Z +B Y +B X +C X +A Y +A Y +B X +C Y +A Y +A Y +B Y +C Z +A Z +C Y +C Z +C Z +C Z +A Z +A Z +A Y +A Z +C X +B Z +A Y +A Y +C Y +C X +B X +C Y +C Y +C Z +C Z +A Z +A Y +C Y +B Y +C Y +C Z +C Z +B Y +B Y +A Y +B Y +C Z +A X +B X +C X +C Z +B Y +A Z +A Y +B Z +C Z +B Y +C Z +C Y +C Z +A Y +A Y +A Z +C X +C Z +A Y +B Z +B X +C X +C Z +C Z +C Z +C Y +C Z +B X +C Z +C Z +C Y +C X +B Z +B X +C Y +C Z +B Y +A Y +C Y +A Z +C Z +B Z +A Y +A Z +A Z +A Y +C Z +C Y +A Y +B X +B Y +C Y +C Z +B Y +B X +B Y +B Y +C Y +B Y +C Z +A Z +C Y +A Y +B X +B Z +B Y +A Y +B X +B Z +A Y +C Y +B Y +C Y +C Y +B Y +C Z +B Z +A Z +C Y +C Z +A X +C Z +C Z +A Y +C Z +A Z +A Y +A X +C Y +B Y +C Y +C X +B X +A Y +A Y +A Y +A Z +A Y +C X +C Y +C X +A Y +B X +C Z +A Z +C Y +B Z +C Z +B Y +C X +C Z +C Z +C Z +C Z +B X +C Y +B X +A Y +A Y +C Z +C X +C Z +C X +C Y +C Y +B X +C Z +B X +C Z +C Z +A Y +C Z +C Z +C Z +B Z +C Z +A X +C Z +C X +C X +C Y +A Z +B X +A Y +A Y +A Y +C Z +C Y +B X +A Z +C Z +C Z +C Z +C Z +B X +C Z +C Z +C Y +B Y +A Z +A Y +A Z +B X +C Z +C Y +B Y +A Y +C Z +B X +A Y +A Y +C Z +B Y +C Y +C Z +C Y +A Y +B X +C Z +A X +C Y +C Z +B Y +A Y +B X +B Y +C Y +B Y +C Z +C Z +A Z +B X +B Y +B Y +A Y +B X +C Y +A Y +B Y +A Y +C Y +C Y +B Y +C Z +C X +B Z +A Z +A Y +B X +B Y +C Y +C Z +A Z +B Z +B X +C X +C Y +C X +A Y +A Y +C Z +C Y +C X +B X +B Z +C Z +C Z +B X +C Y +C Z +C X +C Y +C X +A Z +C Y +B Y +B Y +C Y +A Z +B Y +C Z +C Y +A Z +A Y +C Z +C X +B Z +C Z +C Z +A Y +C Y +C Z +C Y +B Z +B Y +B Y +A Z +C X +A Y +C Z +C Y +A Y +C X +C Z +C Z +B Z +C X +C Z +A Y +A Y +B Y +C X +A Y +C Z +A Z +C Y +B Y +A Y +A Z +C Z +B X +A Y +C Z +A Z +C Z +C Y +C Z +C Z +C Y +A Y +C Z +A Y +B X +B Z +C Z +C Z +C Y +C Z +C Y +C Y +B X +C X +B Y +C Y +C Z +B Y +B Y +A Z +A Y +B Y +B X +C Z +C X +A Y +C Z +C Y +A Y +C Z +A X +A Z +A X +C Z +A X +B Y +C X +C Y +C Z +B Z +C Y +B Y +C Z +B Y +C Y +C Z +A Y +B Y +A Z +B Z +C Z +A Y +C Y +B X +C Y +A X +A Y +C Z +C X +C X +B Y +B Z +B Z +C Y +C Z +B Y +C Z +C Y +A Y +B Y +C Y +C Z +B Z +C Z +C Z +A Y +B Y +A Y +C Z +A Y +A Y +C Y +A Z +C X +A Y +A Z +B Y +A Y +B Y +C Z +B X +C Y +A Y +C Y +C Z +A Y +C Y +C Y +A Y +C Y +C Y +B X +A Y +C Z +A Y +A Y +A Y +B Y +C Y +A Y +C Z +B X +C Z +A Y +B Y +C Y +A Y +C Y +C Y +C Y +C Y +C X +C X +A Y +C X +C Z +B Z +A Y +B Y +C Z +B X +C X +A Y +B X +C Y +B Z +B Y +C Y +C Z +C Z +C X +A Z +C Y +A Z +C Z +B Z +A Y +C Y +B Y +A Y +B X +C Z +C Y +A Y +A Y +A Z +C Z +C Z +C Y +C Z +B X +C Y +C Z +A Y +B Y +B X +A Z +C Z +C Y +C Z +B Y +C X +C Y +C Z +B Y +A Y +A Z +B X +C Z +C X +A Y +B X +C Z +C Y +B Z +C Z +C Z +C Z +A Y +A Y +A X +B Z +A Y +C Z +C Z +C Z +B X +B Y +C Y +B Y +A Y +A Z +A Y +A Y +B Z +A Y +C X +C Y +A Z +C Z +C Y +C Z +B Y +C Z +B X +B X +A Y +B Z +B X +B Y +B Y +B X +B Y +A Z +C Z +C Y +C Y +A Z +B Y +C Z +A Y +C Y +A Y +A Y +B X +C Y +A Z +B X +B X +A Y +C Y +A Y +C Z +B Y +C Z +C Y +A X +C Z +C Z +C Z +A Y +C Z +C X +C Z +C X +C Z +B Y +A Y +A Y +A Y +B X +B Y +B Z +B X +C Z +C Y +B Z +A Z +A Z +C X +C Z +B X +A Z +C X +A X +B Y +B X +B X +C Z +C Y +A X +C Y +C Y +C Y +B X +A Z +B Y +B X +A Z +C Z +B X +A Z +A Y +B Z +B Y +C X +C Z +B X +C Y +C Y +C Y +A Y +C Z +A Z +A Z +C Y +C Y +A Y +C Z +C Z +B X +C Z +C Z +B Y +A Y +C Z +B X +C Y +C Y +C Z +C Z +A Y +C Z +C Y +B X +C X +A X +A Z diff --git a/Advent-of-Code-2022/aoc-2/main.c b/Advent-of-Code-2022/aoc-2/main.c new file mode 100644 index 0000000..af65b88 --- /dev/null +++ b/Advent-of-Code-2022/aoc-2/main.c @@ -0,0 +1,70 @@ +#include <stdio.h> +#include <stdlib.h> + +#if 0 +  #define PART part1 +#else +  #define PART part2 +#endif + +#if 0 +  #define FILENAME "sample.txt" +#else +  #define FILENAME "input.txt" +#endif + +// outcome[opponent][player] +int outcome[3][3] = { +       /* player rock paper scissors*/ +/* rock     */   { 1,   2,   0 }, +/* paper    */   { 0,   1,   2 }, +/* scissors */   { 2,   0,   1 }, +}; + +// player[opponent][player] +int player[3][3] = { +              /* lose draw win */ +/* rock     */   { 2,  0,  1 }, +/* paper    */   { 0,  1,  2 }, +/* scissors */   { 1,  2,  0 }, +}; + +int score = 0; + +void part1(char *line) +{ +    int opponent = line[0] - 'A'; +    int player   = line[2] - 'X'; + +    score += (player + 1) + (outcome[opponent][player] * 3); +} + +void part2(char *line) +{ +    int opponent = line[0] - 'A'; +    int outcome  = line[2] - 'X'; + +    score += (player[opponent][outcome] + 1) + (outcome * 3); +} + +void parse() +{ +    FILE *fp = fopen(FILENAME, "r"); +    if(!fp) { +        fprintf(stderr, "ERROR: Could not open file: %s\n", FILENAME); +        exit(1); +    } + +    char line[8]; +    while(fgets(line, sizeof(line), fp)) +        PART(line); + +    fclose(fp); +} + +int main(void) +{ +    parse(); +    printf("%d\n", score); +    return 0; +} diff --git a/Advent-of-Code-2022/aoc-2/sample.txt b/Advent-of-Code-2022/aoc-2/sample.txt new file mode 100644 index 0000000..db60e36 --- /dev/null +++ b/Advent-of-Code-2022/aoc-2/sample.txt @@ -0,0 +1,3 @@ +A Y +B X +C Z | 
