Repérer une zone plate

Après 200 jours de voyage intersidéral à manger des céréales, vous êtes enfin parvenu à la planète rouge. Il est enfin temps de se poser !

Le module est en pilote automatique, et vous n'avez qu'à regarder autour de vous pour sélectionner une zone d'alunissage. Vous devez vous poser sur une zone plate si vous ne voulez pas vous scratcher. Vous indiquez au pilote automatique où se poser en modifiant la fonction getLandingZone de façon à ce qu'elle retourne [!java|scala]un Segment représentant la zone de votre choix.

Un Segment est composé de deux Points, chacun composé de deux doubles. On construit un nouveau segment de la façon suivante : Segment([!java]Point [/!]debut[!scala]:Point[/!], [!java]Point [/!]fin[!scala]:Point[/!]). Pour créer de nouveaux points, il faut utiliser le constructeur Point([!java]double [/!]x[!scala]:Double[/!], [!java]double [/!]y[!scala]:Double[/!]). Les coordonnées d'un point sont accessibles grâce à ses méthodes [!java]double [/!]x()[!scala]:Double[/!] et [!java]double [/!]y()[!scala]:Double[/!].

[/!] [!python]tuple de deux coordonnées X délimitant la zone de votre choix.[/!]

Pour déterminer la zone cible, vous devez appeler [!java]List<Point> [/!]getSol()[!scala]:List[Point][/!], qui retourne les points qui composent la surface sous la forme d'une list de [!java|scala]Point[/!] [!python]tuples (x,y)[/!].

Une dernière chose : votre fonction doit retourner une zone valide dans toutes les situations, pas seulement celle que l'on voit en ce moment. C'est que votre code sera utilisé dans ce cas, mais également dans la configuration que nous avions dans l'exercice précédent. Comme d'habitude, vous pouvez voir les autres mondes en les sélectionnant dans le combobox au dessus de la vue du monde.

Bon alunissage ! N'oubliez pas de mettre votre combinaison spatiale en sortant.