diff --git a/puzzles/day05.py b/puzzles/day05.py index cf883a8..c491242 100644 --- a/puzzles/day05.py +++ b/puzzles/day05.py @@ -42,7 +42,6 @@ class Chart: vents: List = None def __init__(self, vents: List[VolcanicVent], diagnals: bool = True) -> None: - self.chart = defaultdict(int) self.vents = vents self._generate_chart(diagnals=diagnals) @@ -59,22 +58,22 @@ class Chart: .......... 222111.... 0,9 -> 5,9 0,9 -> 2,9 """ - vents = self.vents.copy() - for vent in vents: + self.chart = defaultdict(int) + for vent in self.vents: if vent.direction != "diagnal": self._chart_line_horiz_vert(vent.start, vent.end) elif diagnals: self._chart_line_diagnal(vent.start, vent.end) def _chart_line_diagnal(self, start: Location, end: Location) -> None: - if end.x > start.x: # direction: left + if end.x > start.x: # direction: left x_range = range(start.x, end.x + 1) - else: # direction: right - x_range = range(start.x, end.x - 1, -1) # reverse range - if end.y > start.y: # direction: down + else: # direction: right + x_range = range(start.x, end.x - 1, -1) # reverse range + if end.y > start.y: # direction: down y_range = range(start.y, end.y + 1) - else: # direction: up - y_range = range(start.y, end.y - 1, -1) # reverse range + else: # direction: up + y_range = range(start.y, end.y - 1, -1) # reverse range for x, y in zip(x_range, y_range): self.chart[x, y] += 1