10 (requires easyocr)

This commit is contained in:
DUEFON 2022-12-11 22:16:14 +01:00
parent 423291817e
commit a957bda70a
3 changed files with 317 additions and 0 deletions

138
input10 Normal file
View File

@ -0,0 +1,138 @@
noop
addx 24
addx -19
noop
noop
noop
addx 5
noop
addx 1
addx 5
addx -1
addx 5
addx 1
addx 14
addx -9
addx -1
addx 5
noop
addx 2
addx -20
addx 24
addx -36
addx -2
noop
addx 3
addx 2
addx 5
addx 21
addx -16
noop
addx 2
addx 15
addx -14
addx 2
addx 5
addx 2
addx -4
addx 5
addx -8
addx 15
addx 2
addx 3
addx -2
addx -38
noop
addx 3
addx 4
noop
addx 7
noop
noop
addx -2
addx 5
addx -16
addx 21
noop
addx -10
addx 11
addx 2
addx 5
addx 4
noop
noop
addx -6
addx 7
noop
addx 3
addx -36
noop
addx 5
noop
addx 20
addx -19
addx 5
addx 4
noop
addx -2
addx 3
noop
addx 4
noop
addx -1
addx 5
addx 3
addx -28
addx 30
noop
addx 6
noop
noop
addx 1
addx -38
addx 40
addx -33
addx 20
addx -19
addx 2
noop
addx 28
addx -23
addx 5
addx 2
addx 2
addx 3
addx -2
addx 5
addx 2
addx -7
addx 12
addx -2
noop
addx 3
addx -38
noop
addx 24
addx -17
noop
addx 5
noop
noop
addx 1
addx -8
addx 13
noop
noop
addx 2
addx 5
addx 2
addx 6
addx -5
addx 4
noop
addx 1
addx 2
noop
addx 3
noop
noop

33
ten.py Executable file
View File

@ -0,0 +1,33 @@
#!/usr/bin/env python3
from useful import *
import easyocr
i = 1
s = {}
x = 1
for l in lines(open(0)):
s[i] = x
if l.split()[0] == 'addx':
i += 1
s[i] = x
x += int(l.split()[1])
i += 1
else:
i += 1
print(sum(i * (s[i] if i in s else s[i-1]) for i in range(20, 221, 40)))
w, h = 40, 6
paper = np.zeros((h, w))
for (y, x), _ in np.ndenumerate(paper):
if (s[y*w+x+1] - x)**2 < 2:
paper[y,x] = 1
if len(sys.argv) > 1 and sys.argv[1] == '-v':
print('\n'.join([
''.join(['#' if c else ' ' for c in l])
for l in paper]), file=sys.stderr)
eor = easyocr.Reader(('en',))
pray = eor.readtext(np.pad(paper, (42, 42)).astype('uint8') * 255)
text = re.sub(r'[^A-Z]', '', ''.join([s for (_, s, _) in pray]))
print(text)

146
test10 Normal file
View File

@ -0,0 +1,146 @@
addx 15
addx -11
addx 6
addx -3
addx 5
addx -1
addx -8
addx 13
addx 4
noop
addx -1
addx 5
addx -1
addx 5
addx -1
addx 5
addx -1
addx 5
addx -1
addx -35
addx 1
addx 24
addx -19
addx 1
addx 16
addx -11
noop
noop
addx 21
addx -15
noop
noop
addx -3
addx 9
addx 1
addx -3
addx 8
addx 1
addx 5
noop
noop
noop
noop
noop
addx -36
noop
addx 1
addx 7
noop
noop
noop
addx 2
addx 6
noop
noop
noop
noop
noop
addx 1
noop
noop
addx 7
addx 1
noop
addx -13
addx 13
addx 7
noop
addx 1
addx -33
noop
noop
noop
addx 2
noop
noop
noop
addx 8
noop
addx -1
addx 2
addx 1
noop
addx 17
addx -9
addx 1
addx 1
addx -3
addx 11
noop
noop
addx 1
noop
addx 1
noop
noop
addx -13
addx -19
addx 1
addx 3
addx 26
addx -30
addx 12
addx -1
addx 3
addx 1
noop
noop
noop
addx -9
addx 18
addx 1
addx 2
noop
noop
addx 9
noop
noop
noop
addx -1
addx 2
addx -37
addx 1
addx 3
noop
addx 15
addx -21
addx 22
addx -6
addx 1
noop
addx 2
addx 1
noop
addx -10
noop
noop
addx 20
addx 1
addx 2
addx 2
addx -6
addx -11
noop
noop
noop