2022 Day 10 Python
This commit is contained in:
parent
c676a77fb5
commit
b6c9f3f016
|
@ -0,0 +1,25 @@
|
|||
from helpers import *
|
||||
|
||||
def run_machine(l):
|
||||
x = 1
|
||||
cycle = 1
|
||||
X = np.ones(len(l)*2, dtype=dtype)
|
||||
for line in l:
|
||||
ins = line[:4]
|
||||
if ins == 'addx':
|
||||
cycle += 2
|
||||
X[cycle:] += int(line[5:])
|
||||
elif ins == 'noop':
|
||||
cycle += 1
|
||||
X = X[:cycle+1]
|
||||
I = np.arange(cycle+1)
|
||||
sig_strength = sum((X*I)[(I+20)%40 == 0])
|
||||
print(f'Part 1: Signal strength sampled at 20, 60, 100... = {sig_strength}')
|
||||
SCREEN_X = I % 40
|
||||
SCREEN = np.zeros_like(X)
|
||||
SCREEN[abs(SCREEN_X-X-1) <= 1] = 1
|
||||
print('Part 2: Display output below')
|
||||
for i in range(1, cycle, 40):
|
||||
print(''.join(' ' if c==0 else '#' for c in SCREEN[i:i+40]))
|
||||
|
||||
run_machine(read_day(10).split('\n'))
|
|
@ -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
|
Loading…
Reference in New Issue