--- /dev/null
+#!/usr/bin/python3
+
+ship_direction="E"
+ship_horz=0
+ship_vert=0
+directions=["E", "S", "W", "N"]
+
+def do_move(direction, amount):
+ global ship_horz
+ global ship_vert
+ if direction in ["E", "W"]:
+ if direction == "W":
+ amount=amount*-1
+ ship_horz+=amount
+ elif direction in ["N", "S"]:
+ if direction == "S":
+ amount=amount*-1
+ ship_vert+=amount
+
+def turn(amount,multiplier):
+ global ship_direction
+ global directions
+
+ dir_pos=0
+ for a,dir2 in enumerate(directions):
+ if dir2 == ship_direction:
+ dir_pos=a
+ break
+
+ print("Loc: {}".format(dir_pos))
+
+ dir_pos+=int((int(amount) / 90) * multiplier)
+ dir_pos=(dir_pos % len(directions))
+ print("New loc: {}".format(dir_pos))
+ print("Started in direction {}, changing to direction {}, after getting told to go {}".format(ship_direction, directions[dir_pos], (int(amount) * multiplier)))
+ ship_direction=directions[dir_pos]
+
+def turn_right(amount):
+ turn(amount, 1)
+
+def turn_left(amount):
+ turn(amount, -1)
+
+for line in open("input.txt", "r"):
+ line=line.rstrip()
+ command=line[0]
+ amount=int(line[1:])
+
+ if command in [ "N", "S", "E", "W" ]:
+ do_move(command, amount)
+ elif command == "R":
+ turn_right(amount)
+ elif command == "L":
+ turn_left(amount)
+ elif command == "F":
+ do_move(ship_direction, amount)
+
+print("Moved to {}, {} - MD: {}".format(ship_horz,ship_vert,(abs(ship_horz)+abs(ship_vert))))