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