def main(): """ horizontal position, vertical position, and aim both start at 0 forward X increases forward (horizontal) position by X units AND changes depth by (X * aim) units down X increases aim (vertical angle) by X units up X decreases aim (vertical angle) by X units After following all instructions multiply final h_pos by final v_pos """ h_pos, v_pos, aim = 0, 0, 0 instructions = [] with open("aoc2-1.txt", "r") as file: instructions = file.readlines() for inst in instructions: dir, amt = inst.strip().split(" ") amt = int(amt) if dir == "forward": h_pos += amt v_pos += (amt * aim) elif dir == "down": aim += amt elif dir == "up": aim -= amt else: raise ValueError(f"Unrecognized direction: {h_pos}") return (h_pos * v_pos) if __name__ == "__main__": print(main())