2023/day10/part1.py
Fedaya 64a270ee39 Day 10 completed
completed with the help of shapely python module

other minors changes in day5
2023-12-10 17:34:02 +01:00

35 lines
1.0 KiB
Python
Executable File

#!/usr/bin/env python3.11
from collections.abc import Iterable
from common import *
def all_equals(points: list[Point]) -> bool:
first = points[0]
logging.debug(f"testing {points} with value {first}")
return all(map(lambda x: x == first, points))
def farthest_length(labyrinth: Labyrinth) -> int:
length = 1
current_vectors = list(
((labyrinth.start, point) for point in labyrinth.first_points)
)
logging.debug(f"first vectors: {current_vectors}")
current_points = list(vector[1] for vector in current_vectors)
logging.debug(current_points)
while not all_equals(current_points):
new_vectors = []
new_points = []
for vector in current_vectors:
new_vector = (vector[1], movement(vector[1], vector[0], labyrinth))
new_vectors.append(new_vector)
new_points.append(new_vector[1])
current_vectors = new_vectors
current_points = new_points
length += 1
return length
if __name__ == "__main__":
print(farthest_length(parse("input.txt")))