def main(): directions = load_directions('directions.txt') starting_point = (0, 0) starting_orientation = 'N' ending_point, _ = follow_directions(starting_point, starting_orientation, *directions) print(get_distance(starting_point, ending_point))
def test_follow_directions(self): starting_point = (0, 0) starting_orientation = 'N' directions = ['R2', 'L3', 'R1'] ending_point = (3, 3) ending_orientation = 'E' assert (follow_directions(starting_point, starting_orientation, *directions) == (ending_point, ending_orientation))
def main(): directions = load_directions('directions.txt') starting_point = point = (0, 0) orientation = 'N' visited = [] for step in directions: next_point, orientation = follow_directions(point, orientation, step) expanded = expand_path(point, next_point) for intermediate_point in expanded[1:]: if intermediate_point in visited: print(get_distance(starting_point, intermediate_point)) return else: visited.append(intermediate_point) point = next_point print('No points visited twice.')
def test_manhattan_distance(): instructions = directions.read_directions('example.txt') actual_position = directions.follow_directions(instructions) assert directions.manhattan_distance(actual_position) == 25
def test_example(): instructions = directions.read_directions('example.txt') expected_position = (17, -8) assert directions.follow_directions(instructions) == expected_position
def test_part_1(): instructions = directions.read_directions('input.txt') actual_position = directions.follow_directions(instructions) assert directions.manhattan_distance(actual_position) == 2057