From 5fd442c3bba6b4c63facb6bd89ecc3a9736e1c8d Mon Sep 17 00:00:00 2001 From: Tom van der Lee Date: Sat, 17 Dec 2022 17:17:54 +0100 Subject: Added some utilities --- day15/__init__.py | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) (limited to 'day15/__init__.py') diff --git a/day15/__init__.py b/day15/__init__.py index 5885f37..38bef35 100644 --- a/day15/__init__.py +++ b/day15/__init__.py @@ -1,17 +1,12 @@ # -*- coding: utf-8 -*- import re from abc import ABC -from collections import namedtuple from dataclasses import dataclass, field -from typing import Tuple, Iterator, Any, Set, Union -from typing import Tuple, Iterator, Any, Set, List +from typing import Union +from typing import Tuple, Iterator, Set, List from aoc import BaseAssignment - - -class Coordinate(namedtuple("Coordinate", ["x", "y"])): - def distance(self, other: "Coordinate"): - return abs(self.x - other.x) + abs(self.y - other.y) +from aoc.datastructures import Coordinate @dataclass @@ -24,10 +19,10 @@ class Sensor: return hash(self.coordinate) def __post_init__(self): - self.radius = self.coordinate.distance(self.nearest) + self.radius = self.coordinate.manhattan_distance(self.nearest) def within_radius(self, coordinate: Coordinate) -> bool: - distance = self.coordinate.distance(coordinate) + distance = self.coordinate.manhattan_distance(coordinate) return distance <= self.radius def x_coordinates_within_radius_at(self, y: int, map: "Map") -> Union[range, list]: -- cgit v1.2.3