Esempio n. 1
0
        public MarsRover(Position position, CompassDirection compassDirection, ILocation plateau)
        {
            if (!plateau.IsPositionValid(position))
            {
                throw new ArgumentException("position", $"{position} is not valid.");
            }

            if (!plateau.IsPositionFree(position))
            {
                throw new ArgumentException("position", $"{position} is not free.");
            }

            Position         = position;
            CompassDirection = compassDirection;
            Plateau          = plateau;
            Plateau.AddRover(this);
        }