My search nodes were tuples of position, direction, and steps taken in the same direction.
More or less a straight depth first search with a priority queue from there.
More or less a straight depth first search with a priority queue from there.
Otherwise it was just making sure I got the rules right, like all AoC problems, and testing different cases to make sure my solution did the right thing.