diff options
Diffstat (limited to '2022/day10/asd.py')
| -rwxr-xr-x | 2022/day10/asd.py | 71 |
1 files changed, 0 insertions, 71 deletions
diff --git a/2022/day10/asd.py b/2022/day10/asd.py deleted file mode 100755 index 7281026..0000000 --- a/2022/day10/asd.py +++ /dev/null @@ -1,71 +0,0 @@ -#!/usr/bin/env python3 - -# import numpy as np -from functools import reduce -from re import findall -from copy import deepcopy -import sys - -# filename = "ref.txt" -filename = "pzl.txt" -data = open(filename).read() -lines = [line for line in data.rstrip('\n').split('\n')] - -res1 = 0 -x = 1 -cycles = 1 -for line in lines: - opcodes = line.split(' ') - if opcodes[0] == 'addx': - if cycles == 19 or (cycles+20) % 40 == 39: - a = (cycles+1) * x - res1 += a - elif cycles == 20 or (cycles+20) % 40 == 0: - a = cycles * x - res1 += a - x += int(opcodes[1]) - cycles += 2 - elif opcodes[0] == 'noop': - if cycles == 20 or (cycles+20) % 40 == 0: - a = cycles * x - res1 += a - cycles += 1 - - -res2 = 'read it' -crt = [0 for _ in range(40*6)] -x = 1 -cycles = 1 -def print_crt(crt): - for i,val in enumerate(crt): - print('.' if val == 0 else '#', end='') - if (i+1) % 40 == 0: - print() - print() - -def sprite(crt, cycles, x): - s = [1 if abs(x-i) % 40 in [39, 0, 1] else 0 for i in range(40*6)] - c = [1 if abs(cycles-i-1) % (40*6) == 0 else 0 for i in range(40*6)] - - m = list(map(lambda x: x[0]*x[1], zip(c,s))) - crt = list(map(lambda x: x[0]+x[1], zip(crt,m))) - return crt - -for line in lines: - opcodes = line.split(' ') - if opcodes[0] == 'addx': - crt = sprite(crt, cycles+0, x) - crt = sprite(crt, cycles+1, x) - x += int(opcodes[1]) - cycles += 2 - elif opcodes[0] == 'noop': - crt = sprite(crt, cycles+0, x) - a = cycles * x - cycles += 1 - # print(cycles, x) - -print_crt(crt) - -print('res1:', res1) -print('res2:', res2) - |
