diff options
| author | nekineki <nekineki@nekineki.net> | 2022-12-11 14:47:27 +0100 |
|---|---|---|
| committer | nekineki <nekineki@nekineki.net> | 2022-12-11 14:50:32 +0100 |
| commit | fe75c10e350743a1c078f065d69556fecf825ca5 (patch) | |
| tree | 956556a564c9329346dc9d8b1535dc5e365f3d55 /2022/day10/asd.py | |
| parent | a74d2dc54aef546664bcc8c81eb8e01a93e94391 (diff) | |
move files around, update paths
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) - |
