solved 6, with graphics lol
This commit is contained in:
parent
52206219dd
commit
13e902069b
4 changed files with 224 additions and 0 deletions
BIN
6/a.out
Executable file
BIN
6/a.out
Executable file
Binary file not shown.
130
6/input
Normal file
130
6/input
Normal file
|
@ -0,0 +1,130 @@
|
||||||
|
.#....#...................#................#......................#.#...............#................#....#...........#..........#
|
||||||
|
.................................#.....#............#............#.......#...#...##........#..............................#.......
|
||||||
|
..............#.#............#...............................................##.................#....................#..#.........
|
||||||
|
..............#.............................#...........................#....#....#........#.................................#..#.
|
||||||
|
............#.#..#.#...........................#.....................................#..........#............#....................
|
||||||
|
.#......................................................................#..................................#......#............#.#
|
||||||
|
...........#.............................#....................#...#.....#........#....##.........................................#
|
||||||
|
......#..##.......................................................................#............#..................................
|
||||||
|
........#.......#..........#.......#........#..................#....................#.............#.....................#.........
|
||||||
|
................#....#.##.........................#........#....#.................#...............................................
|
||||||
|
.............#........................................#....................#...............#.....#.............#...............#..
|
||||||
|
..........#.........................#...#.......................#.............................................#......#............
|
||||||
|
........#................................................#..........#.............#.............#.........#....................#..
|
||||||
|
....#............#................#.....#.#................#..................#.................#.................................
|
||||||
|
....#.........................#.............#.....#..................#....#............#...................................#......
|
||||||
|
...##....................#.............#...............................................#..........................................
|
||||||
|
.....##.......................#...................#................#..........#.....................#...................#.........
|
||||||
|
....#....#..................................................#.......................................................#.............
|
||||||
|
...#........##.........................#.......................#........#...................#...........#...................#.....
|
||||||
|
.....................##.#...................................................................#.............#.......................
|
||||||
|
........#..............#...................................................#.....................#...#.......#..#.............#...
|
||||||
|
..................................................#.......#...............#.............#........#..#.....................#.......
|
||||||
|
..#..................#...............##..................#.#.........#..........#..............#....................#..#..........
|
||||||
|
...#..................................................#...........................................#........#......................
|
||||||
|
#.................................................#..............#...#..........#....................#....................#......#
|
||||||
|
..#...#....#...........#.................................#......................................#.......................#.....#...
|
||||||
|
...#...........#..#................................#......#.............#........................##.................#....#....#...
|
||||||
|
....................#.........#.......................................................................................#...........
|
||||||
|
............................................................#................#.#..#.....#.....................#...................
|
||||||
|
.......................................#......#....................................#........................................#.....
|
||||||
|
...........#.............#...............................#..........#.........#...#.......................................#.......
|
||||||
|
.............#...............................#.#...................................................#.....#............#...........
|
||||||
|
.......................................#...#....................#.#..........##.................#...............#............#....
|
||||||
|
....................#..#....#.............#..............#....#.........................................#.##.....#................
|
||||||
|
......##..............................................................................................#...........................
|
||||||
|
....#.......#.............................#..#.........#................................#.........#...............................
|
||||||
|
..........................................................................#...............................#...........#.#.........
|
||||||
|
...............#..................................................#.........#.....................#...............#...............
|
||||||
|
.........#......#............#.........#................................#..............................##.........................
|
||||||
|
...............#.....................................#............................................#........................#......
|
||||||
|
..#...........#...........................................#.........................................................#.............
|
||||||
|
................................#......##..#............................................................................#.........
|
||||||
|
.........#...........................................#....#..............#......................##....#..#........................
|
||||||
|
.....#.............#.....#........##......................#...#..................................................#.........#..#.#.
|
||||||
|
...........................#.........#.......#..........................##...........................#..............#.............
|
||||||
|
...............................................................................#..#........................#................#.#...
|
||||||
|
.....#.#.............................................................#.........#...........#..................................#...
|
||||||
|
.....#....#..#........#....................................#......................................................................
|
||||||
|
#......................................#..#..............................#..#................#........#...........................
|
||||||
|
.....................................................................................................#.......#....#.........#.....
|
||||||
|
....#....#............................................#................................................................#..........
|
||||||
|
......#.................#.......#..............................................#...................#..............................
|
||||||
|
...................#.........................................................................................#....................
|
||||||
|
.............................#................#.#......#...#.......................................#............#............#....
|
||||||
|
...........................................................#..........#..#.................##.....#..#............................
|
||||||
|
.....#......................................................#..............................#........................#.............
|
||||||
|
...............................................#.............#........#.......................................#.......#...........
|
||||||
|
.............................................................#.............................#...........#.#...................#....
|
||||||
|
.......#......#......#......................#..................................#^.......................#.........#.......#.......
|
||||||
|
...........................................................................................................#....................#.
|
||||||
|
.....#............#.....................#....................#....................................................................
|
||||||
|
....#...........#................#.....##.............................................................#....................#......
|
||||||
|
.................................#.#....................#......................#......................#.#.................#.......
|
||||||
|
..................#......#...#..........#............#................#...#.................................................#.....
|
||||||
|
...............................................................................................................#...#.........#....
|
||||||
|
...............#.........#..............................#.......#.......#.......#.................................................
|
||||||
|
.#........#...#......................................#........#...#.......................................................#..#....
|
||||||
|
.....#...............................................................#.....#..........#.........#.....................#...........
|
||||||
|
.........................................................................................................#...#.........#......#...
|
||||||
|
.....##..................#...#.....#.........#......................................#...............................#.............
|
||||||
|
..#...............................................................................................#...............................
|
||||||
|
........#..............................#.#........#.#..#...................................................#.#....................
|
||||||
|
........................................................#........................#..#.............................................
|
||||||
|
.....................#.......................#..................................#..........................#....#.................
|
||||||
|
.........................##.........#.................................#................................#....#.....................
|
||||||
|
..#........#.......................................................................#.....#........................................
|
||||||
|
.....#.....................................#.....#....................#...............#...........................................
|
||||||
|
......................#....................................................................................................#......
|
||||||
|
...#.........................#......................................................#.......#.......#..#.....................#....
|
||||||
|
............#...#....................................................#....#......#...............#.......#......................##
|
||||||
|
.......#.................................................#...#.....................#..................#...........................
|
||||||
|
.#...................#.....#.#..............................................................................#.....................
|
||||||
|
..........#...............#......#...........#......................................................#.....#.............#...#....#
|
||||||
|
.......##.........#.....................................................#....#.........................................#.........#
|
||||||
|
..##..................#............#..#........................................#..................#..##...........................
|
||||||
|
..................#....##..............................#.....#...............#.................................................#..
|
||||||
|
........#..........#...................#.............#...............#..#........#................................................
|
||||||
|
........#..............................................##....#....................................................................
|
||||||
|
.........#.#............#.........................#..............#................................#......................#........
|
||||||
|
........#.#............................#.....#....................................................................#...............
|
||||||
|
.......................................#......................#...........................#.......................................
|
||||||
|
..........................##.....................##..#............................................................................
|
||||||
|
#.............#..............................................................................#...........#........................
|
||||||
|
......#....#.....................................#........................#.......................................................
|
||||||
|
#...................#.#.......#.......#.....................#.....#...........................................#...................
|
||||||
|
...#.......................................#............................................#................#........................
|
||||||
|
...........#.............................#........................................................................................
|
||||||
|
...............................................................#.............#..................................................#.
|
||||||
|
.........#........#....#.#..............................................#.........................................................
|
||||||
|
.........#....#....#...................#..........#............................................#..##..............................
|
||||||
|
....#...#.......................#..#....................#...#..........................##..#....#.........................#.......
|
||||||
|
....#.....##...........................#.#..............#.......................#...#.......................................#.....
|
||||||
|
......................................................................................#.#..#.....#............##....#....#........
|
||||||
|
..............#..................................................................##....#.............#............................
|
||||||
|
................##...#..............#........................#.......................#.#...#......................#...............
|
||||||
|
...#............................#...#......#.#............#........#......................#........#................#.............
|
||||||
|
..........#.....................................#.....#...............................................................#.........##
|
||||||
|
.........#.......#...................#.#.........................................................#................................
|
||||||
|
...........................#.#............................#...................#.................#.........#.......................
|
||||||
|
.....#....#.........#................................................................................#...#..................#.....
|
||||||
|
...............................#....#............................#............................................#.............#.....
|
||||||
|
......#...............#......#.........................#.#........................................................................
|
||||||
|
.......................................................................................#...................#.........#.#..#.......
|
||||||
|
.....#...................................#..................................................................#........#............
|
||||||
|
...........................................#.......................................#....................#............#...#........
|
||||||
|
....#............................#..................................#.#....#......................#....#..#.......#...#...........
|
||||||
|
.#....#................................................#..................#.......##..........................#...#...............
|
||||||
|
........#...................##...........................................................#...................................#.#..
|
||||||
|
...#..........#.#....#...................#......#................................................................#................
|
||||||
|
....#............................#....#......#..#............#..................#........#..........#....#....#........#.#........
|
||||||
|
................#....#...............#...#.#..............................................#............#................#.........
|
||||||
|
.......#.....#.#.................#......................................................................#..#......................
|
||||||
|
.#......................#.................................................#......#..........#......#....................#.........
|
||||||
|
......#.#............................#............#.......#............#.....#....................................................
|
||||||
|
.#.............#.........#..................................................#...#...........#..........#............#..#..........
|
||||||
|
...........#......#...........#............................#.......#......#......#..........#....##..#............#...............
|
||||||
|
..........................#........#.........................................................#......#........................##...
|
||||||
|
.................#....#............#...#...........................#....#....#....#...#...........................................
|
||||||
|
.............#.......................................................#.........#..................................................
|
||||||
|
....#.................................#...............#.....#....#......##..............#.......................#........#........
|
10
6/inputDemo
Normal file
10
6/inputDemo
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
....#.....
|
||||||
|
.........#
|
||||||
|
..........
|
||||||
|
..#.......
|
||||||
|
.......#..
|
||||||
|
..........
|
||||||
|
.#..^.....
|
||||||
|
........#.
|
||||||
|
#.........
|
||||||
|
......#...
|
84
6/main.c
Normal file
84
6/main.c
Normal file
|
@ -0,0 +1,84 @@
|
||||||
|
#include<stdlib.h>
|
||||||
|
#include<stdio.h>
|
||||||
|
#include<string.h>
|
||||||
|
#include<stdbool.h>
|
||||||
|
#include<unistd.h>
|
||||||
|
|
||||||
|
int main ()
|
||||||
|
{
|
||||||
|
int guard[2];
|
||||||
|
int rot = 0;
|
||||||
|
int dir[4][2] = {{0, -1}, {1, 0}, {0, 1}, {-1, 0}};
|
||||||
|
|
||||||
|
// figure out data dimensions
|
||||||
|
FILE *input = fopen("./input", "r");
|
||||||
|
int width = 0;
|
||||||
|
int height = 1;
|
||||||
|
while (fgetc(input) != '\n') width++;
|
||||||
|
for (char c = fgetc(input); c != EOF; c = fgetc(input)) {
|
||||||
|
if (c == '\n')
|
||||||
|
height++;
|
||||||
|
}
|
||||||
|
rewind(input);
|
||||||
|
printf("Dimensions: %d x %d\n", width, height);
|
||||||
|
|
||||||
|
// make 2d array
|
||||||
|
char **grid = malloc(width * sizeof(char*));
|
||||||
|
grid[0] = malloc(width * height);
|
||||||
|
for (int i = 1; i < width; i++) {
|
||||||
|
grid[i] = grid[0] + i * height;
|
||||||
|
}
|
||||||
|
|
||||||
|
// put the data in the array
|
||||||
|
for (int i = 0; i < width; i++) {
|
||||||
|
for (int j = 0; j < height; j++) {
|
||||||
|
grid[j][i] = fgetc(input);
|
||||||
|
if (grid[j][i] == '^') {
|
||||||
|
guard[0] = j;
|
||||||
|
guard[1] = i;
|
||||||
|
printf("guard coords: %d/%d\n", guard[0], guard[1]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// skip newline
|
||||||
|
fgetc(input);
|
||||||
|
}
|
||||||
|
fclose(input);
|
||||||
|
|
||||||
|
// sum it
|
||||||
|
int sum_x = 0;
|
||||||
|
// step (mark current X, check forward, step or rotate) until oob
|
||||||
|
while (true) {
|
||||||
|
// graphics!
|
||||||
|
/*
|
||||||
|
printf("\e[1;1H\e[2J");
|
||||||
|
for (int i = 0; i < width; i++) {
|
||||||
|
for (int j = 0; j < height; j++) {
|
||||||
|
printf("%c", grid[j][i]);
|
||||||
|
}
|
||||||
|
printf("\n");
|
||||||
|
}
|
||||||
|
usleep(2000);
|
||||||
|
printf("\e[1;1H\e[2J");
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (grid[guard[0]][guard[1]] != 'X') {
|
||||||
|
sum_x++;
|
||||||
|
grid[guard[0]][guard[1]] = 'X';
|
||||||
|
}
|
||||||
|
// oob?
|
||||||
|
if (guard[0] + dir[rot][0] < 0 ||
|
||||||
|
guard[0] + dir[rot][0] >= height ||
|
||||||
|
guard[1] + dir[rot][1] < 0 ||
|
||||||
|
guard[1] + dir[rot][1] >= height)
|
||||||
|
break;
|
||||||
|
if (grid[guard[0] + dir[rot][0]][guard[1] + dir[rot][1]] == '#')
|
||||||
|
rot = (rot + 1) % 4;
|
||||||
|
// step
|
||||||
|
guard[0] += dir[rot][0];
|
||||||
|
guard[1] += dir[rot][1];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
printf("total Xs: %d\n", sum_x);
|
||||||
|
}
|
Loading…
Add table
Reference in a new issue