aoc/2022/day10.py

42 lines
853 B
Python
Raw Normal View History

2023-04-17 18:18:20 +00:00
#!/bin/python3
program = list()
with open('day10.txt', 'r') as f:
for line in f:
line = line.strip()
if line == "noop":
program.append("noop")
else:
[cmd, arg] = line.split(" ")
program.append((cmd, int(arg)))
states = list()
state = 1
for instruction in program:
if instruction == 'noop':
states.append(state)
else:
(cmd, arg) = instruction
states.append(state)
states.append(state)
state += arg
part1 = 0
for i in range(19, len(states), 40):
part1 += (i+1) * states[i]
print(part1)
for y in range(6):
for x in range(40):
index = y * 40 + x
state = states[index]
if x == state or x == state-1 or x == state+1:
print('#', end='')
else:
print('.', end='')
print('')