/// <summary> /// Calculate the coordinates so vehicle can move itself coordinates with sum of theese coordinates. /// </summary> /// <param name="vehicle">Vehicle to move</param> /// <returns>Returns the movement</returns> public static Plateau GetDirectionToMove(IVehicle vehicle) { Plateau directionToMove = new Plateau(1, 1); switch (Convert.ToChar(vehicle.CurrentDirection())) { case Direction.East: directionToMove.XAxis = 1; break; case Direction.North: directionToMove.YAxis = 1; break; case Direction.South: directionToMove.YAxis = -1; break; case Direction.West: directionToMove.XAxis = -1; break; default: throw new NotImplementedException(); break; } return(directionToMove); }
public void TestMethodoryMethodTest() { IVehicle vehicle = VehicleFactory.MakeVehicle(robotic); var coordinates = vehicle.CurrentCoordinates(); var directoin = vehicle.CurrentDirection(); }
/// <summary> /// Calculate the direction which vehicle will turn by side (Left /Right) /// </summary> /// <param name="vehicle">The vehicke which will turn</param> /// <param name="sideToTurn">The side vehicle turn.</param> /// <returns>Returns direction to Turn</returns> /// N /// /\ /// | /// W <___|___>E /// | /// | /// \/ /// S public static char GetDirectionToTurn(IVehicle vehicle, char sideToTurn) { char directionToTurn; if (sideToTurn.ToString().ToUpper() == "L") { switch (Convert.ToChar(vehicle.CurrentDirection())) { case Direction.East: directionToTurn = Direction.North; break; case Direction.North: directionToTurn = Direction.West; break; case Direction.South: directionToTurn = Direction.East; break; case Direction.West: directionToTurn = Direction.South; break; default: throw new NotImplementedException(); break; } } else if (sideToTurn.ToString().ToUpper() == "R") { switch (Convert.ToChar(vehicle.CurrentDirection())) { case Direction.East: directionToTurn = Direction.South; break; case Direction.North: directionToTurn = Direction.East; break; case Direction.South: directionToTurn = Direction.West; break; case Direction.West: directionToTurn = Direction.North; break; default: throw new NotImplementedException(); break; } } else { throw new NotImplementedException(); } return(directionToTurn); }