Browse Source

Minor refactoring and black

pull/5/head
Ryan Reed 3 years ago
parent
commit
34e0a431d2
1 changed files with 8 additions and 9 deletions
  1. +8
    -9
      puzzles/day05.py

+ 8
- 9
puzzles/day05.py View File

@ -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


Loading…
Cancel
Save