public void ExecuteInstructionWithWayPoint(ShipInstruction instruction) { switch (instruction.ShipCommand) { case ShipCommand.GoNorth: WayPoint.NorthCoord += instruction.UnitsToMove; break; case ShipCommand.GoSouth: WayPoint.NorthCoord -= instruction.UnitsToMove; break; case ShipCommand.GoEast: WayPoint.EastCoord += instruction.UnitsToMove; break; case ShipCommand.GoWest: WayPoint.EastCoord -= instruction.UnitsToMove; break; case ShipCommand.TurnLeft: WayPoint.RotateWayPointLeftRelToShip(instruction.UnitsToMove); break; case ShipCommand.TurnRight: WayPoint.RotateWayPointRightRelToShip(instruction.UnitsToMove); break; case ShipCommand.GoForward: NorthCoord += WayPoint.NorthCoord * instruction.UnitsToMove; EastCoord += WayPoint.EastCoord * instruction.UnitsToMove; break; case ShipCommand.UnknownCommand: break; default: throw new ArgumentOutOfRangeException(); } }
public void ExecuteInstruction(ShipInstruction instruction) { switch (instruction.ShipCommand) { case ShipCommand.GoNorth: NorthCoord += instruction.UnitsToMove; break; case ShipCommand.GoSouth: NorthCoord -= instruction.UnitsToMove; break; case ShipCommand.GoEast: EastCoord += instruction.UnitsToMove; break; case ShipCommand.GoWest: EastCoord -= instruction.UnitsToMove; break; case ShipCommand.TurnLeft: ShipBearing = ConvertDegreesToShipBearing((int)ShipBearing - instruction.UnitsToMove); break; case ShipCommand.TurnRight: ShipBearing = ConvertDegreesToShipBearing((int)ShipBearing + instruction.UnitsToMove); break; case ShipCommand.GoForward: GoForward(instruction.UnitsToMove); break; case ShipCommand.UnknownCommand: break; default: throw new ArgumentOutOfRangeException(); } }