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 Point
s, 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[/!]
.
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.