This commit is contained in:
dece 2021-12-13 09:31:16 +01:00
parent 4d09ffef05
commit 9a350e8eea

31
2021/day13.py Normal file
View file

@ -0,0 +1,31 @@
with open("input13.txt") as f:
coords = []
folds = []
for line in map(str.rstrip, f):
if "," in line:
coords.append(tuple(map(int, line.split(","))))
elif line and line[0] == "f":
c, v = line.rsplit(maxsplit=1)[-1].split("=")
folds.append((c == "x", int(v)))
for i, (is_h, v) in enumerate(folds):
if is_h:
coords = set(
(x - (x - v) * 2, y) if x > v else (x, y)
for x, y in coords
)
else:
coords = set(
(x, y - (y - v) * 2) if y > v else (x, y)
for x, y in coords
)
if i == 0:
print(len(coords))
dx = max(coords, key=lambda p: p[0])[0] + 1
dy = max(coords, key=lambda p: p[1])[1] + 1
screen = [[" "] * dx for _ in range(dy)]
for x, y in coords:
screen[y][x] = ""
for row in screen:
print("".join(row))