Files
AdventOfCode2024/14/14-2-sol-only-as-txt.py
2024-12-14 14:44:32 +01:00

49 lines
1.1 KiB
Python

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
file = "./input.txt"
Y_TALL = 103
X_WIDE = 101
#file = "./ex.txt"
#Y_TALL = 7
#X_WIDE = 11
from time import time
import re
start_time = time()
def parse_and_go(input_file:str, seconds) -> list[list[int]]:
global Y_TALL, X_WIDE
field = []
for i in range(Y_TALL):
temp = []
for j in range(X_WIDE):
temp.append(0)
field.append(temp)
with open(input_file, 'r') as d:
datei = d.read()
pat = r'p\=(-?\d+),(-?\d+) v\=(-?\d+),(-?\d+)'
match = re.findall(pat, datei)
for m in match:
x, y, vx, vy = map(int, m)
# move X seconds
x = (x + (seconds * vx)) % X_WIDE
y = (y + (seconds * vy)) % Y_TALL
field[y][x] += 1
return field
def print_field(f):
for r in f:
for s in r:
if s == 0:
print(".", end="")
else:
print(s, end="")
print()
if __name__ == "__main__":
field_s = parse_and_go(file, 6516)
print_field(field_s)
print(f'Runtime: {time()-start_time:.2f} s')