예제 #1
0
        /// <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);
        }
예제 #2
0
파일: UnitTest1.cs 프로젝트: erkmena/Mars45
 public void TestMethodoryMethodTest()
 {
     IVehicle vehicle     = VehicleFactory.MakeVehicle(robotic);
     var      coordinates = vehicle.CurrentCoordinates();
     var      directoin   = vehicle.CurrentDirection();
 }
예제 #3
0
        /// <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);
        }