Пример #1
0
 /// <summary>
 /// Explores Martian terrain, might be salvaged by a potato farmer in the future.
 /// </summary>
 /// <param name="name">Name of the rover.</param>
 /// <param name="position">Starting position of the rover</param>
 /// <param name="orientation">Starting orientation of the rover</param>
 /// <param name="comModule">Communication module used by the rover.</param>
 /// <param name="terrain">Martian terrain the rover is stationed on</param>
 public Rover(string name, IPosition position, OrientationEnum orientation, IComModule comModule, ITerrain terrain)
 {
     ComModule = comModule;
     Terrain = terrain;
     ComModule.Rover = this;
     Name = name;
     Position = position;
     Orientation = orientation;
     if (Terrain.IsEmpty(Position.X, Position.Y))
     {
         Terrain.Grid[Position.X, Position.Y] = this;
     }
     else
     {
         //There is an obstacle at the coordinates rover was meant to be placed
         throw new ObstacleInTheWayException(Terrain.Grid[Position.X, Position.Y]);
     }
 }