This commit is contained in:
parent
14260bfcfc
commit
1b6af5adf3
3 changed files with 191 additions and 0 deletions
51
2024/6/6.py
Normal file
51
2024/6/6.py
Normal file
|
@ -0,0 +1,51 @@
|
|||
#!/usr/bin/env python
|
||||
# 2024 - Advent Of Code 6
|
||||
|
||||
# file = 'input_example.txt'
|
||||
file = 'input.txt'
|
||||
|
||||
# pylint: disable=consider-using-with
|
||||
input_lines = [line.strip('\n') for line in open(file, encoding="utf-8")]
|
||||
|
||||
MAX_X = len(input_lines[0])
|
||||
MAX_Y = len(input_lines)
|
||||
|
||||
vector=(0, 0)
|
||||
gx = 0
|
||||
gy = 0
|
||||
for y in range(0, MAX_Y):
|
||||
for x in range(0, MAX_X):
|
||||
g = input_lines[y][x]
|
||||
if g not in ('.', '#'):
|
||||
gx = x
|
||||
gy = y
|
||||
print(f'found guard at {x}, {y}')
|
||||
if g == '^':
|
||||
vector = (0, -1)
|
||||
if g == 'v':
|
||||
vector = (0, 1)
|
||||
if g == '>':
|
||||
vector = (1, 0)
|
||||
if g == '<':
|
||||
vector = (-1, 0)
|
||||
print(f'{vector=}')
|
||||
|
||||
moves = [(0,-1), (1, 0), (0, 1), (-1, 0)]
|
||||
move = moves.index(vector)
|
||||
|
||||
visited = set()
|
||||
visited.add((gx, gy))
|
||||
while 0 < gx < MAX_X and 0 < gy < MAX_Y:
|
||||
nextx = gx + vector[0]
|
||||
nexty = gy + vector[1]
|
||||
if nextx < 0 or nextx >= MAX_X or nexty < 0 or nexty >= MAX_Y:
|
||||
break
|
||||
if input_lines[nexty][nextx] != '#':
|
||||
gx += vector[0]
|
||||
gy += vector[1]
|
||||
visited.add((gx, gy))
|
||||
else:
|
||||
move += 1
|
||||
vector = moves[move % 4]
|
||||
|
||||
print(f'{len(visited)=}')
|
130
2024/6/input.txt
Normal file
130
2024/6/input.txt
Normal file
|
@ -0,0 +1,130 @@
|
|||
........#...#..................#.#............#....#....##.........#.............................................#................
|
||||
.#...............#...........................#..........#..........#....#........................................#............#...
|
||||
............#...........................................##.................#.......#............................................#.
|
||||
...#.......................##.........................................#..............................................#....#.......
|
||||
.......#....#......#...................................#............#............#.......#.......#.................#..............
|
||||
#......#........#..................................#..##........#...........#.....................#......#..................#.....
|
||||
......................#........#.....#.....................#.......##........#............#.#....#..#.......#.....................
|
||||
#.........................#.................#.............................................................#.......................
|
||||
.....#....#.................................#........#..#.........................#............#...#.........#...#..............##
|
||||
......................................................................................#...#......................#...#...#..#.....
|
||||
.................#........#.............................#........................#.....#..................#.......................
|
||||
...#.........................#.#..........#.....#..............................#..#...#...#.........#.............................
|
||||
.#............#.................#.....#..............#................#...........................................#...............
|
||||
...........#...#......#.........##................#...................................................#....#.#....................
|
||||
.................................#..................................................#..............................#...#..........
|
||||
.#...............#............#....................................#.....................#............#....................#.....#
|
||||
.#....#.....................#.....#.......................#......#......#...................................#.....#.........#...#.
|
||||
.............#...#...............................#...#...........#...............#....#....#..............................#.......
|
||||
...#......................................................................#.........................................#.............
|
||||
...#..................................#........#........#...................#.............#.......................................
|
||||
......................................................................................................................#........#..
|
||||
......................#.....................................#.....#.................#.........#..............#............#.......
|
||||
..........................#...................#....................................................................#........#.....
|
||||
...........#.....................................................#............#.....................#....................#........
|
||||
..............................#.....#......................................#..........#...#........#........................#.....
|
||||
.......................................#..................#.........#..#....................................................#..#..
|
||||
........................................................................#.................##..#...................................
|
||||
................#.#.....................#.......#..#..................#.........#.................................................
|
||||
........#......#......................#.........#..........................................#..........#....#..##....#.......#.....
|
||||
......................................#..........#...........................#..................................#......#..........
|
||||
..##...#..#......................#............................#...................#........#......................................
|
||||
.......#........#............#..................#....#...##.......................................................................
|
||||
....#......................#......#.............#................................#...#........#.........#.....................#..#
|
||||
......................#...#.........................#..................................###..............................#........#
|
||||
.....................................................................................#.....#...............#.......#..............
|
||||
............#.................................#..................#..........................................#.................#...
|
||||
..........#...................................#.............................#..........#................................#.........
|
||||
............................#..........................................................................#....#.............#.......
|
||||
...............#..#.........#.................................................................##........................#.......#.
|
||||
.............#..........................................................................#.........................................
|
||||
........................................#...#...#....................#...........#...........#....................................
|
||||
............................#................#..............#............................#.......#..#.............................
|
||||
................#...#.........#.............#.........#.......#...........................................#..#.....#..............
|
||||
.......#......#.#.............................................#.....#...#...........#.............................................
|
||||
.#....#...............#.........................#....................#........#..................................................#
|
||||
..........................................................#.................#.................................#...........##......
|
||||
....#.....................................#..........................#........#.....#........................#....................
|
||||
...##................................#........................................#..............#.....................#...#..#....#..
|
||||
..............#.......#..................................#..................#.....................#....#.....................#....
|
||||
.......................#......................................##..........#......#..............#.............................#...
|
||||
....#....................#............#.........................................................................................#.
|
||||
..........#..#.......#.....................#................#.#.....#.....#...........................#...........................
|
||||
.......................#..#.#.............................................#......#..........#.....................................
|
||||
...........#.........................................................................#..............#..............#..............
|
||||
............................................................#.....................................................................
|
||||
...................#....#..#..............#...........................................................#.......#.#.................
|
||||
..............#...#.#....#......#...........................................................................................#....#
|
||||
....................#.................................................................................#..#...#....................
|
||||
.......#...#...................#.............................................#..............###..........#........................
|
||||
...................................#................#.........................................................................#...
|
||||
..............#.......................#...................................#................................#......................
|
||||
...........................##........................#...............................#.........#..................................
|
||||
....................................................#..........##.......................................................#.........
|
||||
........................#................................##.................##.#...........................#.....................#
|
||||
..............................................................................................................#...................
|
||||
.............................#........#..........................#................................................................
|
||||
..........#..........#...............................................#...#................#......................................#
|
||||
................#...........#...............................................................................#................#....
|
||||
.....................#.............................................................................#..#................#.....#....
|
||||
#.................#....#.......................................#..........................#...###.......#..#.....#.#..#..........#
|
||||
............................................................^.............................#.#............................##....#..
|
||||
.#............#.................#......#..................................#....................##.................................
|
||||
......................................................................#.......#...............#..................#..........#.....
|
||||
.........................................#............................................#.....#.#.#..#..........................#...
|
||||
....................#.........................................................#.......#...#..#.....#..............................
|
||||
..........#......................................................##......#................#.....................#.................
|
||||
..........#.............................#..........................#...........#..#...............................................
|
||||
.................................#......#.............##...............................................................#..........
|
||||
........................................................................#.....#.....................##...##...........#...........
|
||||
..#..#.................................#......................#.........#.................#.......................##..............
|
||||
.....................................#..........................................................#.................................
|
||||
...................#...........#..........#............................#.........#................................................
|
||||
................#.................................................................................................................
|
||||
........................................#.....................##.......#........#................#....#................#..........
|
||||
.................#.............#........................#..................................#......................................
|
||||
......#............................#.......................................................#.....#........#.....#..............#..
|
||||
..........#..................................#.......................#............................................................
|
||||
...#..................................................#...........#....#....#.......................#.........................#...
|
||||
............................................#..#............................#..................#......#........#...........#..#...
|
||||
#........................#........................................................#...............................................
|
||||
.....#.#.#................................................##.#...................................#.....................#.#........
|
||||
....#................#..............#.....................................................#........#................#.............
|
||||
..........#........#...................................................#...........................#..............................
|
||||
....................#..#.........................#....#.......#....##.............#...............................................
|
||||
.................#...........................#...........#................................#...........................#...........
|
||||
......#...#....................................................................................................................#..
|
||||
......#.......#......................................#.........#.................#.#..........#.................................#.
|
||||
.......#........................###.........................#...................#................#.................#..............
|
||||
.##.........#.........#..............................................#...........................................#..#.#.........#.
|
||||
..........#..................#..........................................................#.....#..................#...............#
|
||||
......................#..............#.....................##................#..#.....#..........................#.#..............
|
||||
....#.#..#..............................#........#........................................................................#.......
|
||||
.........................#.....................#....#.....................#..........................................#............
|
||||
..#..#........#........................#................................#..................................#.#..................#.
|
||||
........#...#.....................##.........#.............................................................................#......
|
||||
....#...........#............................#.............................#...........#........#..............#..#...............
|
||||
......#...................#................#..................................................##.......#....................#.....
|
||||
.........#.##.....................................................................................................................
|
||||
........................................#......................#................#....#......................#...........#.........
|
||||
.#......#.#......#................#....#...#..............#...........#........................................#..................
|
||||
#...#......................................##.................................................................................#...
|
||||
.................#.........#...............................#......#.................#.......................................#...#.
|
||||
...#..#......#.........#...........#..............#...................................................................#.........#.
|
||||
...........#.#........................................#..............#............................................................
|
||||
...........................#.................................................................................#............#.......
|
||||
.............#......................................................#.................#..#..............#.........................
|
||||
...........#.....................................................#...............................#................#....#..........
|
||||
..........#....#........................#...........................................................................#.............
|
||||
.......................................................#..........................................#...................#...........
|
||||
..............#...........................................#.............................#..................#......................
|
||||
.................#....................................................#.....................................#...............#.....
|
||||
.......................................#........................#.........#................#........#............##.....#.........
|
||||
....#...#..............#........................#....................#........#...................................#...............
|
||||
......##.#......................................................................#.............#...................................
|
||||
....#.......................#..........#..#..............#..............#.#..........................#...............#....#.......
|
||||
.........................#......................#...........................#...............#......#.............#................
|
||||
.......#.........................#.......................................................................#........................
|
||||
.......................#........................................#...............##...........#...................#.....##...#.....
|
||||
.....#........................#.............#.........#.....#................#..............#..........................#..........
|
||||
.................#...................#....#...........#....#........................##.....#...#..................................
|
10
2024/6/input_example.txt
Normal file
10
2024/6/input_example.txt
Normal file
|
@ -0,0 +1,10 @@
|
|||
....#.....
|
||||
.........#
|
||||
..........
|
||||
..#.......
|
||||
.......#..
|
||||
..........
|
||||
.#..^.....
|
||||
........#.
|
||||
#.........
|
||||
......#...
|
Loading…
Reference in a new issue