day10
This commit is contained in:
parent
a277190148
commit
fbcb6e6294
67
day10.py
Normal file
67
day10.py
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
from tools.aoc import AOCDay
|
||||||
|
from typing import Any
|
||||||
|
|
||||||
|
|
||||||
|
class Day(AOCDay):
|
||||||
|
inputs = [
|
||||||
|
[
|
||||||
|
(13140, "input10_test"),
|
||||||
|
(14620, "input10_dennis"),
|
||||||
|
(13180, "input10"),
|
||||||
|
],
|
||||||
|
[
|
||||||
|
("EZFCHJAB", "input10"),
|
||||||
|
]
|
||||||
|
]
|
||||||
|
|
||||||
|
def part1(self) -> Any:
|
||||||
|
score = 0
|
||||||
|
scored = set()
|
||||||
|
cycle = 0
|
||||||
|
register = 1
|
||||||
|
|
||||||
|
for line in self.getInput():
|
||||||
|
cycle += 1
|
||||||
|
if line.startswith('addx'):
|
||||||
|
cycle += 1
|
||||||
|
|
||||||
|
if (cycle - 20) % 40 == 0 or (cycle - 21) % 40 == 0 or (cycle - 22) % 40 == 0:
|
||||||
|
cy_mul = cycle - ((cycle - 20) % 40)
|
||||||
|
if cy_mul not in scored:
|
||||||
|
score += cy_mul * register
|
||||||
|
scored.add(cy_mul)
|
||||||
|
|
||||||
|
if line.startswith('addx'):
|
||||||
|
register += int(line.split(" ")[-1])
|
||||||
|
|
||||||
|
return score
|
||||||
|
|
||||||
|
def part2(self) -> Any:
|
||||||
|
crt = [[' '] * 40 for _ in range(6)]
|
||||||
|
cycle = 0
|
||||||
|
register = 1
|
||||||
|
|
||||||
|
for line in self.getInput():
|
||||||
|
y = cycle // 40
|
||||||
|
x = cycle % 40
|
||||||
|
if x - 1 <= register <= x + 1:
|
||||||
|
crt[y][x] = '#'
|
||||||
|
cycle += 1
|
||||||
|
|
||||||
|
y = cycle // 40
|
||||||
|
x = cycle % 40
|
||||||
|
if x - 1 <= register <= x + 1:
|
||||||
|
crt[y][x] = '#'
|
||||||
|
|
||||||
|
if line.startswith('addx'):
|
||||||
|
cycle += 1
|
||||||
|
register += int(line.split(" ")[-1])
|
||||||
|
|
||||||
|
for l in crt:
|
||||||
|
print("".join(l))
|
||||||
|
return ""
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
day = Day(2022, 10)
|
||||||
|
day.run(verbose=True)
|
||||||
140
inputs/input10
Normal file
140
inputs/input10
Normal file
@ -0,0 +1,140 @@
|
|||||||
|
addx 2
|
||||||
|
addx 3
|
||||||
|
addx 1
|
||||||
|
noop
|
||||||
|
addx 4
|
||||||
|
addx 1
|
||||||
|
noop
|
||||||
|
addx 28
|
||||||
|
addx -24
|
||||||
|
noop
|
||||||
|
addx 5
|
||||||
|
addx 17
|
||||||
|
addx -16
|
||||||
|
noop
|
||||||
|
addx 6
|
||||||
|
noop
|
||||||
|
addx -7
|
||||||
|
addx 11
|
||||||
|
addx 4
|
||||||
|
noop
|
||||||
|
addx 1
|
||||||
|
addx -36
|
||||||
|
addx -2
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx 10
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx -2
|
||||||
|
addx 2
|
||||||
|
addx 25
|
||||||
|
addx -18
|
||||||
|
addx 23
|
||||||
|
addx -22
|
||||||
|
addx 2
|
||||||
|
addx 5
|
||||||
|
addx -10
|
||||||
|
addx -15
|
||||||
|
addx 28
|
||||||
|
addx 2
|
||||||
|
addx 5
|
||||||
|
addx 2
|
||||||
|
addx -16
|
||||||
|
addx 17
|
||||||
|
addx -36
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx 39
|
||||||
|
addx -32
|
||||||
|
addx -5
|
||||||
|
addx 7
|
||||||
|
addx 1
|
||||||
|
addx 5
|
||||||
|
addx -13
|
||||||
|
addx 1
|
||||||
|
addx 17
|
||||||
|
addx 1
|
||||||
|
noop
|
||||||
|
addx 7
|
||||||
|
noop
|
||||||
|
addx -2
|
||||||
|
addx 2
|
||||||
|
addx 5
|
||||||
|
addx 2
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx -37
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx 6
|
||||||
|
addx 11
|
||||||
|
addx -7
|
||||||
|
addx 29
|
||||||
|
addx -22
|
||||||
|
addx 5
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx 3
|
||||||
|
noop
|
||||||
|
addx 7
|
||||||
|
addx -28
|
||||||
|
addx 24
|
||||||
|
addx 3
|
||||||
|
addx 2
|
||||||
|
noop
|
||||||
|
addx 2
|
||||||
|
noop
|
||||||
|
addx 3
|
||||||
|
addx -38
|
||||||
|
noop
|
||||||
|
addx 7
|
||||||
|
addx -2
|
||||||
|
addx 1
|
||||||
|
addx 6
|
||||||
|
addx -10
|
||||||
|
addx 38
|
||||||
|
addx -25
|
||||||
|
addx 5
|
||||||
|
addx 2
|
||||||
|
addx -10
|
||||||
|
addx 11
|
||||||
|
addx 2
|
||||||
|
noop
|
||||||
|
addx 3
|
||||||
|
addx 2
|
||||||
|
noop
|
||||||
|
addx 3
|
||||||
|
addx 2
|
||||||
|
addx 5
|
||||||
|
addx -39
|
||||||
|
addx 1
|
||||||
|
addx 1
|
||||||
|
addx 3
|
||||||
|
addx 2
|
||||||
|
addx 4
|
||||||
|
addx 29
|
||||||
|
addx -23
|
||||||
|
noop
|
||||||
|
addx -1
|
||||||
|
addx 5
|
||||||
|
noop
|
||||||
|
addx 11
|
||||||
|
addx -10
|
||||||
|
addx 5
|
||||||
|
addx -1
|
||||||
|
noop
|
||||||
|
addx 3
|
||||||
|
noop
|
||||||
|
addx 3
|
||||||
|
addx 4
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
noop
|
||||||
140
inputs/input10_dennis
Normal file
140
inputs/input10_dennis
Normal file
@ -0,0 +1,140 @@
|
|||||||
|
noop
|
||||||
|
addx 25
|
||||||
|
addx -5
|
||||||
|
addx -14
|
||||||
|
addx 4
|
||||||
|
noop
|
||||||
|
addx 2
|
||||||
|
addx 3
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx 3
|
||||||
|
addx 5
|
||||||
|
addx 2
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx 5
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx 1
|
||||||
|
addx 2
|
||||||
|
addx 5
|
||||||
|
addx -40
|
||||||
|
addx 5
|
||||||
|
noop
|
||||||
|
addx 26
|
||||||
|
addx -20
|
||||||
|
addx -3
|
||||||
|
addx 2
|
||||||
|
noop
|
||||||
|
addx -4
|
||||||
|
addx 9
|
||||||
|
addx 5
|
||||||
|
addx 2
|
||||||
|
addx 11
|
||||||
|
addx -10
|
||||||
|
addx 2
|
||||||
|
addx 5
|
||||||
|
addx 2
|
||||||
|
addx 5
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx -31
|
||||||
|
addx 32
|
||||||
|
addx -37
|
||||||
|
addx 1
|
||||||
|
addx 8
|
||||||
|
addx 13
|
||||||
|
addx -15
|
||||||
|
addx 4
|
||||||
|
noop
|
||||||
|
addx 5
|
||||||
|
noop
|
||||||
|
addx 3
|
||||||
|
addx -2
|
||||||
|
addx 4
|
||||||
|
addx 1
|
||||||
|
addx 4
|
||||||
|
addx -14
|
||||||
|
addx 15
|
||||||
|
addx 4
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx 3
|
||||||
|
addx 5
|
||||||
|
addx -40
|
||||||
|
noop
|
||||||
|
addx 5
|
||||||
|
addx 8
|
||||||
|
addx -3
|
||||||
|
noop
|
||||||
|
addx 2
|
||||||
|
addx 9
|
||||||
|
addx -4
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx 5
|
||||||
|
addx -9
|
||||||
|
addx 10
|
||||||
|
addx 4
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx 5
|
||||||
|
addx -19
|
||||||
|
addx 24
|
||||||
|
addx -2
|
||||||
|
addx 5
|
||||||
|
addx -40
|
||||||
|
addx 22
|
||||||
|
addx -19
|
||||||
|
addx 2
|
||||||
|
addx 5
|
||||||
|
addx 2
|
||||||
|
addx 5
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx -2
|
||||||
|
addx 2
|
||||||
|
addx 5
|
||||||
|
addx 3
|
||||||
|
noop
|
||||||
|
addx 2
|
||||||
|
addx 2
|
||||||
|
addx 3
|
||||||
|
addx -2
|
||||||
|
addx 10
|
||||||
|
addx -3
|
||||||
|
addx 3
|
||||||
|
noop
|
||||||
|
addx -40
|
||||||
|
addx 2
|
||||||
|
addx 11
|
||||||
|
addx -5
|
||||||
|
addx -1
|
||||||
|
noop
|
||||||
|
addx 3
|
||||||
|
addx 7
|
||||||
|
noop
|
||||||
|
addx -2
|
||||||
|
addx 5
|
||||||
|
addx 2
|
||||||
|
addx 3
|
||||||
|
noop
|
||||||
|
addx 2
|
||||||
|
addx 6
|
||||||
|
addx -5
|
||||||
|
addx 2
|
||||||
|
addx -18
|
||||||
|
addx 26
|
||||||
|
addx -1
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
noop
|
||||||
146
inputs/input10_test
Normal file
146
inputs/input10_test
Normal file
@ -0,0 +1,146 @@
|
|||||||
|
addx 15
|
||||||
|
addx -11
|
||||||
|
addx 6
|
||||||
|
addx -3
|
||||||
|
addx 5
|
||||||
|
addx -1
|
||||||
|
addx -8
|
||||||
|
addx 13
|
||||||
|
addx 4
|
||||||
|
noop
|
||||||
|
addx -1
|
||||||
|
addx 5
|
||||||
|
addx -1
|
||||||
|
addx 5
|
||||||
|
addx -1
|
||||||
|
addx 5
|
||||||
|
addx -1
|
||||||
|
addx 5
|
||||||
|
addx -1
|
||||||
|
addx -35
|
||||||
|
addx 1
|
||||||
|
addx 24
|
||||||
|
addx -19
|
||||||
|
addx 1
|
||||||
|
addx 16
|
||||||
|
addx -11
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx 21
|
||||||
|
addx -15
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx -3
|
||||||
|
addx 9
|
||||||
|
addx 1
|
||||||
|
addx -3
|
||||||
|
addx 8
|
||||||
|
addx 1
|
||||||
|
addx 5
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx -36
|
||||||
|
noop
|
||||||
|
addx 1
|
||||||
|
addx 7
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx 2
|
||||||
|
addx 6
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx 1
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx 7
|
||||||
|
addx 1
|
||||||
|
noop
|
||||||
|
addx -13
|
||||||
|
addx 13
|
||||||
|
addx 7
|
||||||
|
noop
|
||||||
|
addx 1
|
||||||
|
addx -33
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx 2
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx 8
|
||||||
|
noop
|
||||||
|
addx -1
|
||||||
|
addx 2
|
||||||
|
addx 1
|
||||||
|
noop
|
||||||
|
addx 17
|
||||||
|
addx -9
|
||||||
|
addx 1
|
||||||
|
addx 1
|
||||||
|
addx -3
|
||||||
|
addx 11
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx 1
|
||||||
|
noop
|
||||||
|
addx 1
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx -13
|
||||||
|
addx -19
|
||||||
|
addx 1
|
||||||
|
addx 3
|
||||||
|
addx 26
|
||||||
|
addx -30
|
||||||
|
addx 12
|
||||||
|
addx -1
|
||||||
|
addx 3
|
||||||
|
addx 1
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx -9
|
||||||
|
addx 18
|
||||||
|
addx 1
|
||||||
|
addx 2
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx 9
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx -1
|
||||||
|
addx 2
|
||||||
|
addx -37
|
||||||
|
addx 1
|
||||||
|
addx 3
|
||||||
|
noop
|
||||||
|
addx 15
|
||||||
|
addx -21
|
||||||
|
addx 22
|
||||||
|
addx -6
|
||||||
|
addx 1
|
||||||
|
noop
|
||||||
|
addx 2
|
||||||
|
addx 1
|
||||||
|
noop
|
||||||
|
addx -10
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx 20
|
||||||
|
addx 1
|
||||||
|
addx 2
|
||||||
|
addx 2
|
||||||
|
addx -6
|
||||||
|
addx -11
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
noop
|
||||||
Loading…
Reference in New Issue
Block a user