private Rover GetLandedRover(int?x = null, int?y = null) { IPlanet planet = GetPlanet(); var rover = new Rover(); var minX = planet.Surface.GetLowerBound(0) + 1; var minY = planet.Surface.GetLowerBound(1) + 1; var maxX = planet.Surface.GetUpperBound(0) - 1; var maxY = planet.Surface.GetUpperBound(1) - 1; var point = planet.GetRandomPoint(_rnd); while (point.X < minX || point.X > maxX || point.Y < minY || point.Y > maxY) { point = planet.GetRandomPoint(); } rover.Land(planet, x ?? point.X, y ?? point.Y); return(rover); }