from functools import reduce def main(): with open("input3.txt") as file: lines = file.readlines() grid = [list(line.strip()) for line in lines] print(grid[0]) wrap = len(grid[0]) treebumps = [] routes = [[1,1],[3,1],[5,1],[7,1],[1,2]] for route in routes: coords = [0,0] # x, y - across, down trees = 0 while coords[1] < len(grid): if grid[coords[1]][coords[0]] == "#": trees += 1 coords[0] = coords[0] + route[0] coords[1] = coords[1] + route[1] if coords[0] >= wrap: coords[0] = coords[0] - wrap print(f"It's been a long toboggan trip going {route[0]} right and {route[1]} down, and I encountered {trees} trees.") treebumps.append(trees) total = reduce((lambda x,y: x*y), treebumps) print(f"I encountered these trees: {treebumps} - those produce {total}.") if __name__ == "__main__": main()