summaryrefslogtreecommitdiff
path: root/12/part2.c
diff options
context:
space:
mode:
Diffstat (limited to '12/part2.c')
-rw-r--r--12/part2.c66
1 files changed, 0 insertions, 66 deletions
diff --git a/12/part2.c b/12/part2.c
deleted file mode 100644
index 745b56c..0000000
--- a/12/part2.c
+++ /dev/null
@@ -1,66 +0,0 @@
-#include <stdio.h>
-#include <stdint.h>
-#include <stdlib.h>
-#include <malloc.h>
-#include <string.h>
-
-#include "../utils.h"
-
-int solve(const char *filename)
-{
- FILE *file = fopen(filename, "r");
-
- // Include space for newline and string terminator
- char buffer[8] = { 0 };
-
- int w_x = 10;
- int w_y = 1;
- int y = 0;
- int x = 0;
- while (fgets(buffer, 8, file)) {
- int n = atoi(buffer + 1);
- switch (buffer[0]) {
- case 'N':
- w_y += n;
- break;
- case 'E':
- w_x += n;
- break;
- case 'S':
- w_y -= n;
- break;
- case 'W':
- w_x -= n;
- break;
- case 'F':
- for (int i = 0; i < n; i++) {
- x += w_y;
- y += w_x;
- }
- break;
- case 'R':
- for (int i = 0; i < n / 90; i++) {
- SWAP(w_y, w_x);
- w_y = -w_y;
- }
- break;
- case 'L':
- for (int i = 0; i < n / 90; i++) {
- SWAP(w_y, w_x);
- w_x = -w_x;
- }
- break;
- default:
- break;
- }
- }
-
- fclose(file);
-
- return abs(x) + abs(y);
-}
-
-int main(int argc, char *argv[])
-{
- printf("%i\n", solve(argv[argc - 1]));
-}