Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from itertools import count
- import re
- import numpy as np
- def day10_data():
- with open('10.txt') as f:
- for line in f:
- m = re.match(r'position=< *(-?\d+), *(-?\d+)> '
- r'velocity=< *(-?\d+), *(-?\d+)>', line)
- yield list(map(int, m.groups()))
- def day10():
- data = np.array(list(day10_data()))
- p, v = data[:,:2], data[:,2:]
- def size(p): return p.ptp(axis=0).prod()
- for i in count():
- if size(p + v) > size(p):
- return i, p
- p += v
- def day10_draw(p):
- canvas = np.zeros(p.ptp(axis=0) + 1, dtype=int)
- x, y = (p - p.min(axis=0)).T
- canvas[x, y] = 1
- for row in canvas.T:
- print(''.join(' *'[c] for c in row))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement