input_file = "input.txt" map_table = [] with open(input_file) as slope_map: line = slope_map.readline() while line and line != "\n": map_table.append(line) line = slope_map.readline() def check_for_trees(direction=(3, 1)): x_pos = 0 y_pos = 0 width = len(map_table[0]) height = len(map_table) tree_count = 0 # Might pose an issue for y speed different than a divisor of the number of lines ? while y_pos < height-1: # x wraps around as the map is repeated on the right indefinitely x_pos, y_pos = ((x_pos+direction[0]) % (width-1), y_pos+direction[1]) if map_table[y_pos][x_pos] == "#": tree_count += 1 print(f"We came close to {tree_count} trees by going {direction}.") return tree_count def check_multiple_directions(directions): result = 1 for direction in directions: result *= check_for_trees(direction) print(f"Result is {result}.") check_multiple_directions([(1, 1), (3, 1), (5, 1), (7, 1), (1, 2)])