with open("day10/input.txt") as f:
input = f.read().splitlines()Day 10
Part 1
- Read in input file
First 100 lines of input looks like this:
['addx 2',
'addx 3',
'addx 3',
'addx -2',
'addx 4',
'noop',
'addx 1',
'addx 4',
'addx 1',
'noop',
'addx 4',
'addx 1',
'noop',
'addx 2',
'addx 5',
'addx -28',
'addx 30',
'noop',
'addx 5',
'addx 1',
'noop',
'addx -38',
'noop',
'noop',
'noop',
'noop',
'addx 5',
'addx 5',
'addx 3',
'addx 2',
'addx -2',
'addx 2',
'noop',
'noop',
'addx -2',
'addx 12',
'noop',
'addx 2',
'addx 3',
'noop',
'addx 2',
'addx -31',
'addx 32',
'addx 7',
'noop',
'addx -2',
'addx -37',
'addx 1',
'addx 5',
'addx 1',
'noop',
'addx 31',
'addx -25',
'addx -10',
'addx 13',
'noop',
'noop',
'addx 18',
'addx -11',
'addx 3',
'noop',
'noop',
'addx 1',
'addx 4',
'addx -32',
'addx 15',
'addx 24',
'addx -2',
'noop',
'addx -37',
'noop',
'noop',
'noop',
'addx 5',
'addx 5',
'addx 21',
'addx -20',
'noop',
'addx 6',
'addx 19',
'addx -5',
'addx -8',
'addx -22',
'addx 26',
'addx -22',
'addx 23',
'addx 2',
'noop',
'noop',
'noop',
'addx 8',
'addx -10',
'addx -27',
'addx 33',
'addx -27',
'noop',
'addx 34',
'addx -33',
'addx 2',
'addx 19']
Create a generator that returns the totals each time it iterates
Finally the answer for the top 1 given the input
strengths = sum_strengths(input)
print(f'the correct answer for part 1 is {strengths}')the correct answer for part 1 is 14540
Part 2
cpu = CPU(input)
pixels = list(cpu.draw_pixel())
for i in range(0,240,40):
row = pixels[i:i+40]
s = "".join(row)
print(s)
print("EHZFZHCZ")####.#..#.####.####.####.#..#..##..####.
#....#..#....#.#.......#.#..#.#..#....#.
###..####...#..###....#..####.#......#..
#....#..#..#...#.....#...#..#.#.....#...
#....#..#.#....#....#....#..#.#..#.#....
####.#..#.####.#....####.#..#..##..####.
EHZFZHCZ