adventofcode-2018/10/solve01.py
2018-12-16 16:23:51 +01:00

50 lines
1.2 KiB
Python
Executable File

#!/usr/bin/env python
import time
import re
points = []
def read_input():
with open('input.txt', 'r') as f:
for line in f:
yield [int(x) for x in re.findall(r'-?\d+', line)]
def print_points(points):
max_x = max([p[0] for p in points])
min_x = min([p[0] for p in points])
max_y = max([p[1] for p in points])
min_y = min([p[1] for p in points])
delta_x = abs(max_x - min_x)
delta_y = abs(max_y - min_y)
grid = [['.' for x in range(delta_x+1)] for y in range(delta_y+1)]
move_x = min_x if min_x < 0 else min_x*-1
move_y = min_y if min_y < 0 else min_y*-1
for p in points:
grid[p[1]+move_y][p[0]+move_x] = 'x'
for line in grid:
print(''.join(line))
time.sleep(1)
for point in read_input():
points.append(point)
elapsed = 0
while True:
max_x = max([p[0] for p in points])
min_x = min([p[0] for p in points])
max_y = max([p[1] for p in points])
min_y = min([p[1] for p in points])
delta_x = abs(max_x - min_x)
delta_y = abs(max_y - min_y)
print("elapsed: {}, delta: {}/{}".format(elapsed,delta_x, delta_y))
if delta_x < 70:
print_points(points)
elapsed += 1
points = [ [p[0]+p[2], p[1]+p[3], p[2], p[3]] for p in points]