day18 package
Subpackages
Submodules
day18.day18a module
day18 solution.
- class day18.day18a.Command(direction: Direction, steps: int, color: str)[source]
Bases:
object
Well defined command dataclass.
- color: str
- steps: int
- class day18.day18a.Direction(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[source]
Bases:
StrEnum
Cardinal direction in
UDLR
.- Down = 'D'
- Left = 'L'
- Right = 'R'
- Up = 'U'
- class day18.day18a.Matrix(min_pos: Position, max_pos: Position)[source]
Bases:
object
2d array representing world.
- dug_tiles = 0
- is_oob(position: Position) bool [source]
Returns if a position is out of bounds.
- Parameters:
position (Position) – position to check.
- Returns:
True if out of bounds.
- Return type:
bool
- num_cols: int
- num_rows: int
- process_command(miner_pos: Position, command: Command) Position [source]
Process command.
This moves the miner around.
- wall_tiles = 0
- class day18.day18a.Position(row: int = 0, col: int = 0)[source]
Bases:
object
Simple 2d point.
- col: int = 0
- row: int = 0
- day18.day18a.generate_offsets(position: Position, direction: Direction, steps: int) list[Position] [source]
Generate position offsets.
- day18.day18a.get_input(path: str) list[Command] [source]
Reads input from file into well-formed list of commands.
- day18.day18a.get_matrix_range(commands: list[Command]) tuple[Position, Position] [source]
Calculate minimum and maximum position in matrix.
Since we start in the middle somewhere, we get negative positions. This can be useds to offset the matrix when we construct it.
day18.day18b module
Day18b solution.
- class day18.day18b.Direction(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[source]
Bases:
IntEnum
Direction as an integer enum.
- Down = 1
- Left = 2
- Right = 0
- Up = 3
- class day18.day18b.Position(row: int = 0, col: int = 0)[source]
Bases:
object
Simple 2d vector.
- col: int = 0
- row: int = 0
- day18.day18b.calculate_area(positions: list[Position], perimeter: int) int [source]
Calculate area using shoelace area.
- day18.day18b.get_input(path: str) list[Command] [source]
Grabs input from file, parsing into well-formed commands.
Module contents
Day18 solution.