from tools.aoc import AOCDay from typing import Any from tools.coordinate import HexCoordinateF, DistanceAlgorithm class Day(AOCDay): inputs = [ [ (796, "input11") ], [ (1585, "input11") ] ] def part1(self) -> Any: start = HexCoordinateF(0, 0, 0) for x in self.getInputAsArraySplit(','): start += HexCoordinateF.neighbour_vectors[x] return start.getDistanceTo(HexCoordinateF(0, 0, 0), DistanceAlgorithm.MANHATTAN) def part2(self) -> Any: init = HexCoordinateF(0, 0, 0) start = HexCoordinateF(0, 0, 0) max_dist = 0 for x in self.getInputAsArraySplit(','): start += HexCoordinateF.neighbour_vectors[x] max_dist = max(max_dist, start.getDistanceTo(init, DistanceAlgorithm.MANHATTAN)) return max_dist if __name__ == '__main__': day = Day(2017, 11) day.run(verbose=True)